我需要复制目录[包含的子文件夹]下的所有.TXT
文件并将它们复制到另一个目录[没有子文件夹]但是我复制它们后无法更改文件的扩展名,例如.OLD
或.TXT.OLD
。这可以通过.bat文件来完成吗?是否有使用的特殊工具?
答案 0 :(得分:0)
请考虑使用powershell:
Get-ChildItem C:\path\to\root\dir -recurse | where {$_.extension -eq ".txt"} | % {Copy-Item $_.FullName -Destination C:\path\to\target\dir}
答案 1 :(得分:0)
您只需要使用文件名的根部分,然后在重命名中附加您自己的扩展名。例如,为了演示(你没有说你对实际过程的逻辑有任何问题,只是扩展操作,这就是我正在解决的问题):
FOR %%I IN (*.txt) DO REN %%I %%~nI.txt.old
这将获取当前目录中的所有*.txt
个文件,并将它们重命名为相同的根+扩展名.txt.old
。可能的复杂因素是生成的文件名不能存在于重命名中,因此您可能希望将其置于更复杂的循环中,例如:
FOR %%I IN (*.txt) DO (
[do other stuff here]
IF EXIST %%~nI.txt.old DEL %%~nI.txt.old
REN %%I %%~nI.txt.old
)
在命令提示符下尝试for /?
并查看文件的最后一部分,了解文件名/路径替换参数的语法