Command line 使用Windows命令行,如何用另一个文件夹完全替换一个文件夹?

Command line 使用Windows命令行,如何用另一个文件夹完全替换一个文件夹?,command-line,batch-file,cmd,xcopy,Command Line,Batch File,Cmd,Xcopy,到目前为止,我可以将所有文件从c:\Users\John\Folder1复制到c:\Users\John\Folder2 但我希望完全交换文件夹 e、 g.将c:\Users\John\Folder1替换为c:\Users\John\SomeFolder\Folder1 我现在有这个:xcopy c:\Users\John\SomeFolder\*c:\Users\John\Folder1/s/I 这只是将所有文件从c:\Users\John\SomeFolder\Folder1复制到c:\Us

到目前为止,我可以将所有文件从
c:\Users\John\Folder1
复制到
c:\Users\John\Folder2

但我希望完全交换文件夹

e、 g.将
c:\Users\John\Folder1
替换为
c:\Users\John\SomeFolder\Folder1

我现在有这个:
xcopy c:\Users\John\SomeFolder\*c:\Users\John\Folder1/s/I

这只是将所有文件从
c:\Users\John\SomeFolder\Folder1
复制到
c:\Users\John\Folder1
,但保留以前存在的文件。我想替换整个文件夹。如果我正在复制的新文件夹不再包含这些文件,我希望将它们删除


抱歉,如果这让人困惑-非常感谢您的帮助。

我认为您可以创建一个批处理文件来完成此操作

伪代码:

  • 删除目录1的内容
  • 将目录1中的内容复制到目录2
  • 代码: 在记事本中创建名为
    swapFiles.bat
    的文件,并输入以下代码:

    rd /s %1
    mkdir %1
    xcopy /s /i %2\* %1
    
    如何使用它:

    directory1
    旧的
    目录(即将被删除的目录)


    希望这对你有帮助

    也许我完全没有领会你的意思,但这不管用吗?(示例):


    复制文件夹1之前是否要删除此文件夹c:\Users\John\SomeFolder?如果是这样,此代码可能适合您

    @echo off
    
    robocopy /s c:\Users\John\Folder1 c:\Users\John\SomeFolder\Folder1
    rmdir /s /q c:\Users\John\Folder1
    

    这将第一个文件夹镜像到第二个文件夹

    非常小心路径是否正确

    @echo off
    robocopy "c:\Users\John\SomeFolder\Folder1" "c:\Users\John\Folder1" /mir
    

    这是一个分两步的过程:首先擦除
    文件夹中的所有文件,然后将
    文件夹内容复制到
    文件夹中。。。这是最简单的方法,你不觉得吗?所以先删除
    Folder1
    。对不起。我对这种东西完全陌生,所以我从来没有听说过“运输”。当我在谷歌上搜索时,它甚至从来没有出现过:/Transit只是我选择的一个任意名称:)我的错,我应该选择一些明显的名称,比如Temp。但是除了重命名文件夹,这真的没有任何作用,对吗?我正在尝试将一个目录的全部内容替换为另一个可能完全位于其他地方的目录。好的-重命名仅在同一个驱动器上有效,因此如果要跨越这些边界,您还必须插入一些xcopy命令。很好!我明天要试试这个。我一定会让每个人都知道结果的。等等。。。#2不应该是“将目录2中的内容复制到目录1”吗?你删除了内容,然后试图复制它,你需要它的另一种方式:)这奏效了!再次感谢!以防万一,我的命令是这样的:
    rd/s\\psf\Home\Desktop\NewFolder\Test1
    mkdir\\psf\Home\Desktop\NewFolder\Test1
    xcopy/s/i\\psf\Home\Desktop\Test2\*\\psf\Home\Desktop\NewFolder
    目录
    \\psf\Home\Desktop\Test2`也有一个名为
    Test1`的文件夹,它将替换文件夹
    \\psf\Home\Desktop\NewFolder\Test1
    否我希望删除c:\Users\John\Folder1并将其替换为c:\Users\John\SomeFolder\Folder1。因此,包含这些文件的目录仍然是
    c:\Users\John\Folder1
    我想现在这段代码将删除文件夹c:\Users\John\Folder1,并给出所需的结果
    @echo off
    
    robocopy /s c:\Users\John\Folder1 c:\Users\John\SomeFolder\Folder1
    rmdir /s /q c:\Users\John\Folder1
    
    @echo off
    robocopy "c:\Users\John\SomeFolder\Folder1" "c:\Users\John\Folder1" /mir