2015-11-01 119 views
0

我試圖修改一個腳本,Magoo根據文件名創建文件夾並將相關文件移動到這些目錄。每個實例具有相同名稱但擴展名不同的2-4個文件。名稱用 - (連字符)分隔。這些是音樂文件,因此會有多個應該移動到標題文件夾中的多個文件夾,以反映分隔符之前的所有內容。通過帶分隔符的文件名創建文件夾

@ECHO OFF 
SETLOCAL 
SET "sourcedir=F:\Test" 
PUSHD "%sourcedir%" 
FOR /f "delims=-" %%a IN (
    'dir /b /a-d *.mp3 *.cdg *.PLX ' 
) DO (
SET "filename=%%a" 
SET "dirname=%%a" 
CALL :genmove 
) 
popd 

GOTO :EOF 

:genmove 
IF "%dirname:~-1%" neq " " set "dirname=%dirname:~0,-1%"&goto genmove 
set "dirname=%dirname:~0,-1%" 
    MD "%dirname%" 
    MOVE "%filename%" ".\%dirname%\" 
GOTO :eof 

我的問題至今:

  • 如果我定義正確創建的文件夾分隔符,但 文件不會移動。
  • 如果我刪除了分隔符,文件將被移動 ,但每個集合都被移動到一個具有整個文件名稱的整個文件 的唯一文件夾中。
  • 在「目錄」的字符串使用*.*沒有工作,所以我定義每個擴展

螞蟻幫助將不勝感激。

回答

0

我想通了。我只是增加了一個*MOVE "%filename%" ".\%dirname%\"

使其成爲MOVE "%filename%*" ".\%dirname%\"

即移動集體的文件到相應的目錄。我仍然希望在FOR /f中有一個通配符,而不是定義每種類型的擴展名,但現在可以使用。

相關問題