如何在.bat檔中指定目錄路徑?

如何在.bat檔中指定目錄路徑?

我的(結果)資料夾旁邊有一個 .bat 檔案。
該資料夾包含具有不同名稱的 .jpg 檔案。
我正在嘗試編寫一個 .bat 文件,以便它重命名此資料夾中的所有這些文件。
它有效,但不完全有效。問題是這樣的:

它僅適用於文件所在的目錄。

setlocal enabledelayedexpansion
set "count=1000"
set a="Result\*.jpg"
for /f "usebackq delims=*" %%f in (`dir /b /o:-d /tc %a%`) do (ren "%%f" file-!count:~1!.jpg
set /a count+=1
)
pause

答案1

這是解決方案..
您只需編寫路徑即可轉到該資料夾cd / d Result

setlocal enabledelayedexpansion
cd /d Result
set "count=1000"
set a="*.jpg"
for /f "usebackq delims=*" %%f in (`dir /b /o:-d /tc %a%`) do (ren "%%f" file-!count:~1!.jpg
set /a count+=1
)
pause

設定本地啟用延遲擴展透過符號擴展變數 (
cd / d 結果轉到結果資料夾
設定“計數 = 1000”我在其中標記了零的數量的變量檔案-001.jpg
設定a=“*.jpg”該變數指示我們正在尋找哪些文件。

( dir /b /o:-d /tc %a%)
目錄- 顯示檔案和子目錄的清單。接下來我們進行排序。
/b- 僅顯示檔案名稱。
/o:-d- 依相反順序對顯示文件清單進行排序(從最新到最舊)。
/tc- 依檔案建立時間排序。
%A%- 呼叫變數。

回溯設定對檔案名稱使用引號的能力像這樣>
指定將字串作為指令執行,用反引號括起來像這樣> `
單引號中的字串就像字串中的命令像這樣> '

分隔符號 = xxx指定一組分隔符號。覆蓋預設的空格製表符分隔符集。

答案2

你的問題對我來說不是很清楚(我的英語很弱而且很差),我不明白它會是什麼:


它僅適用於文件所在的目錄。

  • 我想您想遞歸地重命名,這是對此的編輯。
@echo off 


set "_cnt=1000" && cd /d "%~dp0Result"

for /f tokens^=* %%I in ('dir /o:-d /tc /b /s *.jpg
')do set /a "_cnt+=1" && cmd /v /c "ren "%%~fI" file-!_cnt:~-3!.jpg"
 
%__AppDir__%timeout.exe /t -1 & goto :EOF

1.進入bat所在資料夾:

cd /d "%~dp0Result"

2.遞歸列出您的文件dir ... /b /s

for /f tokens^=* %%I in ('dir /o:-d /tc /b /s *.jpg

3.增加你的會計師

set /a "_cnt+=1"

4.使用計數器循環重命名文件

cmd/v/c "ren "%%~fI" file-!_cnt:~-3!.jpg"

觀察。如果我與您正在尋找的東西相距甚遠,請告訴我...


  • 根據您的答案提供替代方案
@echo off 

setlocal enabledelayedexpansion
set "_cnt=100" && cd /d "%~dp0"

for /f tokens^=* %%I in ('dir/b/o:-d/tc/b/s "Result\*.jpg"
')do rename "%%~fI" file-!_cnt:~-3!.jpg & set /a "_cnt+=1" 

%__AppDir__%timeout.exe /t -1 & endlocal & goto :EOF

相關內容