我有一个名为abcd.txt的文件,我想使用字符串变量将文件重命名为abcd_copy.txt。我尝试了ren
命令,但它只给我abcd.txt_copy.txt。
我的方法是在%variable%中删除.txt,然后使用ren abcd.txt %varialbe%"_copy.txt"
来重命名文件。以下是有问题的代码:
set variable=abcd.txt
ren *.txt %variable%"_copy.txt"
有什么建议吗? 谢谢您的帮助^^
我有一个名为abcd.txt的文件,我想使用字符串变量将文件重命名为abcd_copy.txt。我尝试了ren
命令,但它只给我abcd.txt_copy.txt。
我的方法是在%variable%中删除.txt,然后使用ren abcd.txt %varialbe%"_copy.txt"
来重命名文件。以下是有问题的代码:
set variable=abcd.txt
ren *.txt %variable%"_copy.txt"
我建议使用带参数替换的FOR循环。如果您有一个文件夹中有多个文件,那么FOR循环也是非常好用的。
您需要使用%~n和%~x的组合。%~n将返回不带扩展名的文件名,而%~x将返回扩展名。
示例:
for %i in (*.txt) do echo Filename: %~ni Extension: %~xi
您的需求似乎是:
set variable=abcd.txt
for %i in (%variable%) do ren %i %~ni_copy%~xi
直接执行
ren abcd.txt abcd_copy.txt
请记住,当在批处理脚本中使用时,需要使用双%%。
从CMD提示符尝试:"help for"并向下翻页。您将看到许多选项
有关更多详细信息(包括其他args),请参见此链接... http://ss64.com/nt/syntax-args.html
您还可以在这里找到一些有用的内容-它讨论了字符串替换。 http://ss64.com/nt/syntax-replace.html
%variable:~0,-4%
-4表示将截掉最后4位数字。 所以在你的情况下,它将是:
ren *.txt "%variable:~0,-4%_copy.txt"
未经测试:
set variable=abcd.txt
for %%# in ("%variable%") do ren "%%~#" "%%~n#_copy%%~x#"