我在文件夹中有很多文件,例如某些文件:
- myfile.11-11.txt
我想找到这个文件,复制并重命名它,即我想要两个文件,例如:
- myfile.11-11.txt
- myfile.22-22.txt
我跑:
copy .\*.11-11.txt .\*.22-22.txt
我得到了:
- myfile.11-11.txt
- myfile.11-11.22-22.txt
如何获得以下结果?
- myfile.11-11.txt
- myfile.22-22.txt
答案 0 :(得分:0)
您需要在所选的所有文件上使用FOR
命令进行迭代,并使用有趣的%%~
语法解析获取的名称。见HELP FOR
。试试这个
set src=11-11
set dest=22-22
set ext=txt
for %%a in (*.%src%.%ext%) do call :docp "%%a" "%%~na"
goto :eof
:docp
echo copy "%~1" "%~n2.%dest%.%ext%"
此代码对匹配*.11-11.txt
的每个文件执行的操作是两次提取其名称部分%~n
,首先是FOR
循环,第二个是CALL
ed代码。有效地,它与删除扩展名两次并且在没有.txt
且没有.11-11
的情况下到达名称的根目录相同。
测试后,删除echo
命令。
答案 1 :(得分:-1)
set str=myfile
set newnum=22-22
copy *.11-11.txt %str%.%newnum%.txt
如果你需要做一些动态字符串创建,那么关于DOS字符串操作的文章就在这里:http://www.dostips.com/DtTipsStringManipulation.php