如何将`cmd /V:ON`与另一个命令顺序运行

Mig*_*uel 3 batch-file cmd.exe

我试图通过命令行完成的是循环目录中的文件,并将它们重命名为一个连续的数字。我可以通过以下方式实现这一点

set/a fileNum = 1 & for %f in (*.txt)  do ( rename %~nf%~xf !fileNum!%~xf & set/a fileNum += 1 )
Run Code Online (Sandbox Code Playgroud)

然而问题是,如果不cmd /V:ON先在命令行上进行操作,我就无法进行变量扩展。我尝试这样做

 cmd /V:ON & set/a fileNum = 1 & for %f in (*.txt)  do ( rename %~nf%~xf !fileNum!%~xf & set/a fileNum += 1 )
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。所以我的问题是,有没有办法解决这个问题。根据这个线程,我应该能够在命令行上使用这个setlocal enabledelayedexpansion线程,但这不起作用。有没有解决这个问题的办法。

Ste*_*han 6

如果您确实想要/必须直接在命令提示符下将其作为一行操作:

@>nul set filenum=1&@for %f in (*.txt) do @(cmd /v:on /c ECHO ren "%~nxf" "!fileNum!%~xf"&>nul set/a fileNum+=1)
Run Code Online (Sandbox Code Playgroud)

ECHO确认其功能符合您的要求后,将其移除