【发布时间】:2018-07-17 13:13:43
【问题描述】:
例如,我想替换 -v2 的每个文件名中的所有 -v1 部分。它几乎可以工作,但访问被拒绝,因为 cmd 进程本身在执行期间正在使用这些文件。我当前的代码是:
for /f "delims=" %%a in ('dir /a-d /b *-v1*') do ren "%%a" "%%a:-v1=-v2"
有什么建议吗? :)
编辑:
我也尝试过for /r %%i in ("*-v1*") do ren "%%~nxi" "%%~nxi:-v1=-v2",它找到了文件并使用了正确的重命名值,但仍然输出它无法访问该文件,因为它正在被另一个进程使用。我确定该进程是 cmd.exe 本身,因为在我关闭命令提示符后,我可以手动更改文件名而不会出现任何问题。
我还尝试将当前文件名写入临时 .txt 文件,因为我想重命名的文件不会被任何命令使用。然后在 for 循环中使用 type 命令读取文件以重命名每个文件,但相同。
这很令人沮丧,感谢任何帮助:)
【问题讨论】:
标签: command-line cmd command command-prompt