【问题标题】:Can't delete folder after using RoboCopy使用 RoboCopy 后无法删除文件夹
【发布时间】:2015-12-21 21:43:48
【问题描述】:

我试图从文件夹中复制文件,然后删除该文件夹。我在 Windows 10 上使用 RoboCopy。

现在我意识到我可以使用 /MOVE 开关,但我在尝试的第一种方式时遇到了错误,我想弄清楚它的原因,以便了解它发生的原因。

我有一个这样的文件夹结构:

ParentFolder
---->SubFolder
-------->test.txt
---->test.bat

我从 ParentFolder 中运行 test.bat,其中包含以下脚本

echo off
setlocal
set dir="path\to\ParentFolder"
cd %dir%
robocopy %dir% %dir%\.. test.txt
if %ERRORLEVEL% LSS 8 (
    rmdir /s /q "%dir%"
)
endlocal

复制工作正常,没有 rmdir,文件复制,旧文件留在子文件夹中。当我添加 rmdir 行时,副本仍然可以正常工作,实际上已删除旧文件,但是当它尝试删除 SubFolder 目录时,我收到该进程无法访问该文件的错误,因为它正在被另一个进程使用。

所以最终的结构看起来像这样,而不是删除了 SubFolder:

ParentFolder
---->SubFolder
---->test.bat
---->test.txt

【问题讨论】:

    标签: batch-file robocopy


    【解决方案1】:

    试试这个:

    echo off
    setlocal
    set dir="path\to\ParentFolder"
    cd %dir%
    robocopy %dir% %dir%\.. test.txt
    if %ERRORLEVEL% LSS 8 (
        cd\
        rmdir /s /q "%dir%"
    )
    endlocal
    

    我认为问题在于您试图删除其中的文件夹。

    看这个例子

    cd c:\temp\test
    rmdir /s /q c:\temp\test
    cd c:\temp
    rmdir /s /q c:\temp\test
    

    如您所见,第一个 rmdir 失败,但第二个成功。

    【讨论】:

    • 天哪。当然是这么明显!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2014-03-31
    • 1970-01-01
    • 2012-01-10
    • 2020-06-09
    • 1970-01-01
    • 2018-01-10
    相关资源
    最近更新 更多