如何将 `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)

进一步阅读

相关内容