【问题标题】:Automate file copying from Windows command line从 Windows 命令行自动复制文件
【发布时间】:2010-09-16 05:44:03
【问题描述】:

假设您有 100 个目录,并且对于每个目录,您都有一个名为 .pdf 的文件存储在其他地方。如果要将每个文件移动/复制到同名目录中,可以在 Windows 命令行中完成吗?

【问题讨论】:

  • 可以选择 powershell 吗?
  • 或许是一种选择,但为此,经典的cmd.exe就足够了。

标签: windows command-line


【解决方案1】:

从命令行:

for /f %f in ('dir /s /b mypath\*.pdf') do @copy %~nxf myotherpath

因为它是在命令行上而不是在批处理文件中,所以你只需要 %,而不是 %%。

dir /s /b 是递归且裸露的。 (见目录/?)

复制前的@ 停止每个复制命令的回显。如果你愿意,你可以回应他们,这取决于你。

%~nxf 获取 %f 的名称和扩展名。 (见调用 /?)

【讨论】:

    【解决方案2】:

    这是一个批处理脚本,可能会执行您想要的操作:

    setlocal
    set target_dir=D:\
    set source_dir=C:\WINDOWS
    
    for %%i in (%source_dir%\*.pdf) do move %%i %target_dir%\%%~ni.%%~xi
    
    endlocal
    

    【讨论】:

      【解决方案3】:

      您可以使用FOR command 进行操作。类似的东西:

      for /f %%f in ('dir /s /b c:\source\*.pdf') do copy "%%f" c:\target
      

      如果你有一个文本文件中包含完整路径的文件名列表,比如 files.txt,你也可以这样做

      for /f %%f in (files.txt) do copy "%%f" c:\target
      

      【讨论】:

        【解决方案4】:

        您需要编写一个脚本来遍历每个文件(及其路径),提取文件名-'.pdf',然后将文件移动到同名目录

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-02-12
          • 1970-01-01
          • 1970-01-01
          • 2012-07-14
          • 1970-01-01
          • 2010-09-08
          • 2019-08-27
          相关资源
          最近更新 更多