如何將`cmd /V:ON`與另一個指令順序執行

如何將`cmd /V:ON`與另一個指令順序執行

我試圖透過命令列完成的是循環目錄中的文件,並將它們重命名為一個連續的數字。我可以透過以下方式實現這一點

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)

進一步閱讀

相關內容