【问题标题】:.Bat file to copy txt files without changing extension?.bat 文件复制 txt 文件而不更改扩展名?
【发布时间】:2014-09-11 17:00:53
【问题描述】:

我需要复制一个目录[包括子文件夹]下的所有.TXT文件并将它们复制到另一个目录[没有子文件夹],但是我复制它们后无法更改文件的扩展名,例如@987654322 @ 或 .TXT.OLD。可以通过 .bat 文件来实现吗?有什么特殊的工具可以代替吗?

【问题讨论】:

    标签: windows batch-file batch-processing


    【解决方案1】:

    考虑改用

    Get-ChildItem C:\path\to\root\dir -recurse | where {$_.extension -eq ".txt"} | % {Copy-Item $_.FullName -Destination C:\path\to\target\dir}
    

    【讨论】:

      【解决方案2】:

      您只需要使用文件名的根部分,然后在重命名中附加您自己的扩展名。例如,为了证明 (你并没有说你对实际流程的逻辑有任何问题,只是扩展操作,所以这就是我要解决的问题)

      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 /?,并查看它的最后一部分以了解文件名/路径替换参数的语法

      【讨论】:

        猜你喜欢
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        • 2015-05-06
        • 1970-01-01
        • 2013-07-12
        • 2017-11-07
        • 2011-06-28
        • 1970-01-01
        相关资源
        最近更新 更多