2015-10-08 268 views
0

我有一个文件夹中的许多文件,如文件的一些:批处理脚本:复制和重命名文件

  • 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

为什么不能简单地用'copy myfile.11-11.txt myfile.22-22.txt'复制文件? –

+0

因为“myfile”部分可以不同,我看到很多文件 – Artem

+0

。你想复制所有具有相同'.11-11.txt'后缀和扩展名的文件。请参阅下面的答案。 –

回答

-1
set str=myfile 
set newnum=22-22 
copy *.11-11.txt %str%.%newnum%.txt 

如果你需要做一些动态创建的字符串,然后约DOS串文章操作在这里:http://www.dostips.com/DtTipsStringManipulation.php

+0

这将以相同的名称复制**所有**文件。 –

+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版代码。有效地,它与删除扩展名两次并获取名称的根目录(没有.txt而没有.11-11)相同。

测试后,删除echo命令。

相关问题