【发布时间】:2021-01-21 00:13:34
【问题描述】:
我是批处理脚本的新手,在这里需要帮助。 我的文件名和路径是
C:\test\My_Test_File_20201006.txt
我想把它重命名为
C:\test\My_File_20201006.txt
仅使用批处理脚本。我不能在这里使用 PowerShell。
@echo off
set Pattern="Test_File"
set Replace="File"
Rem accepts the filename as cmd line argument
set filename=%1
Rem Update filename
set targetfile=%filename:Pattern=Replace%
Rem Rename the file
Ren %filename% %targetfile%
Exit
使用上面的代码,我的文件被重命名为“File”。尝试 % 围绕 Pattern & replace 变量,但没有运气。不知道我哪里错了。尝试了 StackOverflow 和其他教程中所有可能的解决方案,但没有任何帮助。
编辑:
在建议的解决方案之后,出现语法错误。代码如下:
@echo off
set "filename=%~nx1"
echo %filename%
echo "%~dp1"
echo "%~dp1%filename:statement_=%"
ren "%~dp1%filename%" "%~dp1%filename:Test_=%"
我从 cmd 行调用我的脚本为:
D:/Test> C:/script/rename.bat C:\test\My_Test_File_20201006.txt
echo 语句正确打印目录的文件名、目录和文件名。面临重命名语句的问题。
输出:
My_Test_File_20201006.txt
"C:\test\"
"C:\test\My_Test_File_20201006.txt"
The syntax of the command is incorrect.
【问题讨论】:
标签: batch-file batch-processing batch-rename