【问题标题】:How do I copy multiple folders to another path with a batch file?如何使用批处理文件将多个文件夹复制到另一个路径?
【发布时间】:2011-08-10 15:06:51
【问题描述】:

如何让它通过某些文件夹(例如驱​​动器 E: 上的 1-8 )及其树并将它们复制到 F: 批处理文件中(我的不起作用):

set drive=E:
for %%a in (1,2,3,4,5,6,7,8) do (
  set folder=%%a
   for /R "%drive%\%%a" %%b in (*) do (
        copy "%%b" %drive%\%folder% 

【问题讨论】:

    标签: windows file batch-file command-line


    【解决方案1】:

    我认为你想要的语法是

    for %%F in (1 2 3 4 5 6 7 8) do (
        xcopy /e e:\%%F  f:\
    )
    

    【讨论】:

    • 它正在复制他文件夹中的文件
    【解决方案2】:

    您正在尝试在循环中设置和重用环境变量。这不起作用,因为cmd 在解析命令时扩展了所有环境变量,而不是在运行它时。所以你需要启用延迟扩展:

    setlocal enabledelayedexpansion
    set drive=E:
    for %%a in (1,2,3,4,5,6,7,8) do (
      set folder=%%a
      for /R "%drive%\%%a" %%b in (*) do (
        copy "%%b" %drive%\!folder! 
      )
    )
    

    (你还漏掉了一些右括号,我为你添加了这些)

    但您也可以使用%%a。它应该仍然存在于内部循环中......

    set drive=E:
    for %%a in (1,2,3,4,5,6,7,8) do (
      for /R "%drive%\%%a" %%b in (*) do (
        copy "%%b" %drive%\%%a 
      )
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 2011-06-03
      • 2021-10-10
      相关资源
      最近更新 更多