【问题标题】:Copy file to multiple folders with specific foldername (batch file)将文件复制到具有特定文件夹名称的多个文件夹(批处理文件)
【发布时间】:2019-01-06 18:43:04
【问题描述】:

我有子文件夹,例如:c:\main\bot01\sb0102 -> sb0199c:\main\bot99\sb9901 -> sb9999

如何制作批处理文件以将 1 个文件复制到以“sb”开头的每个文件夹? 由于有许多“sb”文件夹,我不能像这样为它们的每一行创建命令:

xcopy "C:\test.txt" "c:\main\bot01\sb0102" /y

【问题讨论】:

  • 试试这个@For /D %%A In ("C:\main\bot01\sb*") Do @Copy /Y "C:\test.txt" "%%A"
  • 这是否意味着在sb号码的前两位重复bot号码?以及为什么要从 sb0102 而不是 sb0101 开始?
  • 我的错误,bot01应该是sb0101到sb0199

标签: batch-file


【解决方案1】:

您可以使用两个嵌套计数for /l 循环,

  • 第一次从 101 运行到 199 以保持前导零。
  • 并使用子字符串仅获取需要延迟扩展的最后 2/4 位。

:: Q:\Test\2019\01\06\SO_54064719.cmd
@Echo off&SetLocal EnableDelayedExpansion

set "Sourcefile=C:\test.txt"
for /l %%B in (101,1,199) do (
    set bot=%%B
    Echo ---- bot !bot:~-2! ----
    for /l %%S in (1,1,99) do (
        Set /A sb=bot*100+%%S
        echo Copy /B /Y "%Sourcefile%" "C:\main\bot!bot:~-2!\sb!sb:~-4!"
    )
)

> Q:\Test\2019\01\06\SO_54064719.cmd
---- bot 01 ----
Copy /B /Y "C:\test.txt" "C:\main\bot01\sb0101"
Copy /B /Y "C:\test.txt" "C:\main\bot01\sb0102"
...
Copy /B /Y "C:\test.txt" "C:\main\bot01\sb0198"
Copy /B /Y "C:\test.txt" "C:\main\bot01\sb0199"
---- bot 02 ----
Copy /B /Y "C:\test.txt" "C:\main\bot02\sb0201"
Copy /B /Y "C:\test.txt" "C:\main\bot02\sb0202"
...

如果输出看起来没问题,删除副本前面的回显。

只是为了展示一个允许多个级别范围的 powershell 解决方案

Get-ChildItem C:\main\bot[0-9][0-9]\sb[0-9][0-9][0-9][0-9] -Dir|ForEach-Object{
    Copy-Item C:\test.txt -Destination $_
}

在 cmdline/batch 中讨论主题

powershell -NoP -C "Get-ChildItem C:\main\bot[0-9][0-9]\sb[0-9][0-9][0-9][0-9] -Dir|ForEach-Object{Copy-Item C:\test.txt -Destination $_}"

【讨论】:

  • 当之无愧的 +1,因为他们付出了额外的努力并为他们完成了整个任务。
【解决方案2】:

这是我的评论作为答案

来自批处理文件:

@For /D %%A In ("C:\main\bot01\sb*") Do @Copy /Y "C:\test.txt" "%%A" >Nul 2>&1

从命令提示符:

For /D %A In ("C:\main\bot01\sb*") Do @Copy /Y "C:\test.txt" "%A" >Nul 2>&1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    相关资源
    最近更新 更多