【问题标题】:Batch move folder with random name使用随机名称批量移动文件夹
【发布时间】:2015-12-02 17:43:57
【问题描述】:

我需要将文件夹及其结构移动到其他地方。 我不知道这些文件夹的名称。 移动命令被拒绝 & 复制不保持这种状态的结构:

    @echo on
    for /D %%b in (*) do XCOPY "%%~fb" "C:\Users\*Username*\Desktop\New files" /Y /E 
    timeout /t -1

这就是我得到的:

    sourcefolder                           destinationfolder
      | Randomfolder1                         | Randomfolder2
      |    |  Randomfolder2                   |    \randomfile2.txt 
      |    |     \randomfile2.txt             \randomfile1.txt
      |    \randomfile1.txt
      \moverandomfolders.bat                  

显然我错过了新目录中新文件夹的名称以保持相同的结构。您如何将该随机名称添加到新路径? 在复制文件夹后,我还需要一些东西来从其原始路径中删除文件夹。

    rd /s /q "*random folder name*"

【问题讨论】:

  • 您是否只是想将所有内容复制到新位置的相同目录结构中?如果是这样,您不需要使用FOR 迭代目录; robocopy source destination /MIR /MOVE 之类的东西应该这样做。
  • 您的源文件夹将是 sourcefolder\Randomfolder1 而目标文件夹将是destinationfolder。
  • 对不起,我不够清楚。我不希望移动源文件夹(我的批处理的根目录)中的任何文件。但是我确实希望将此根文件夹中具有随机名称的随机文件夹移动到其他地方(例如在我的桌面上)。 FOR 将扫描根目录并仅查找文件夹。同样,问题是,我不知道需要移入(destinationfolder)的文件夹(Radomfolder1)的名称是什么。所以 ATM 我只是将 Randomfolder1 的内容复制到我的目标文件夹中。我需要 Randomfolder1 在我的目标文件夹中出现。

标签: batch-file random directory move xcopy


【解决方案1】:

我虽然使用诸如在 vars 中存储随机文件夹名称之类的方法来制作它,但我让它只适用于排除文件列表,因为我知道它们。

        @echo on
        for /D %%b in (*) do XCOPY "root folder" "destination folder" /Y /E /EXCLUDE:excludedfileslist.txt
        for /D /R "root folder" %%X IN (*) DO RMDIR /S /Q "%%X"
        timeout /t -1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2013-02-03
    相关资源
    最近更新 更多