我試圖透過命令列完成的是循環目錄中的文件,並將它們重命名為一個連續的數字。我可以透過以下方式實現這一點
set/a fileNum = 1 & for %f in (*.txt) do ( rename %~nf%~xf !fileNum!%~xf & set/a fileNum += 1 )
然而問題是,如果不先cmd /V:ON
在命令列上進行操作,我就無法進行變數擴展。我嘗試這樣做
cmd /V:ON & set/a fileNum = 1 & for %f in (*.txt) do ( rename %~nf%~xf !fileNum!%~xf & set/a fileNum += 1 )
但這也不起作用。所以我的問題是,有沒有辦法解決這個問題。根據這個線程這我應該能夠setlocal enabledelayedexpansion
在命令列上使用線程,但這不起作用。有沒有解決這個問題的方法。
答案1
如果您確實想要/必須直接在命令提示字元中將其作為一行操作:
@>nul set filenum=1&@for %f in (*.txt) do @(cmd /v:on /c ECHO ren "%~nxf" "!fileNum!%~xf"&>nul set/a fileNum+=1)
ECHO
確認其功能符合您的要求後,將其移除
答案2
cmd /V:ON on
如果不先執行命令列,我就無法進行變數擴展。
正確的。但是,以下內容應該有效:
cmd /V:ON /c "set/a fileNum = 1 & for %f in (*.txt) do ( rename %~nf%~xf !fileNum!%~xf & set/a fileNum += 1)
進一步閱讀
- Windows CMD 命令列的 AZ 索引 | SS64.com
- Windows CMD 指令(分類) - Windows CMD - SS64.com
- CMD.exe(指令外殼)- Windows CMD - SS64.com- 啟動新的 CMD shell 並(可選)運行命令/可執行程式。