我有一个名为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"
有什么建议吗? TIA ^^
答案 0 :(得分:2)
我建议使用FOR循环和参数替换。如果文件夹中有多个文件,FOR循环也很好。
您想要使用%~n和%~x的组合。 %~n将返回没有扩展名的FILENAME,%~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提示尝试:"帮助"并向下翻页。您会看到很多选项
请参阅此链接以获取更多详细信息,包括其他参数... http://ss64.com/nt/syntax-args.html
你也可以在这里找到一些有用的东西 - 它讨论了字符串subs。 http://ss64.com/nt/syntax-replace.html
答案 1 :(得分:1)
如果您确定该扩展名是最后4个字符(包括该点),您可以执行以下操作:
%variable:~0,-4%
-4表示最后4位数字将被截断。 所以,在你的情况下,它将是:
ren *.txt "%variable:~0,-4%_copy.txt"
答案 2 :(得分:0)
未经测试:
set variable=abcd.txt
for %%# in ("%variable%") do ren "%%~#" "%%~n#_copy%%~x#"