需要 .bat 來根據檔案名稱建立資料夾

需要 .bat 來根據檔案名稱建立資料夾

我需要 .bat 來根據檔案名稱建立資料夾並將檔案放入其中。我的名字格式如下:

string1 - string2 - string3 - string2 - string3_number.jpg

我發現命令將根據需要獲取 3 個前字串,但無法使其進一步工作。當我嘗試將此命令放入bat中時,它只會產生名為“--”的資料夾。

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (set string1=%%a&set string2=%%b&set string3=%%c
md "%string1%-%string2%-%string3%")

在.bat 中將@echo 關閉並在此之前setlocal 不起作用,有人可以幫助糾正它,這樣它將根據名稱創建資料夾並將文件放入其中。 :

答案1

因為延遲擴張設定時需要在(程式碼區塊)中使用 var 是行不通的。

但由於您不更改根本不需要的變數。

@Echo off & Setlocal EnableDelayedExpansion

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (
  set "Folder=%%a-%%b-%%c"
  Rem to remove the trailing space from the Folder
  set "Folder=!Folder:~0,-1!"
  If not exist "!Folder!\" MD "!Folder!"
)

要移動錯誤方法的文件,您應該先迭代文件,然後以上述方式分割它們。

相關內容