使用 RoboCopy 后无法删除文件夹
Can't delete folder after using RoboCopy
我试图从文件夹中复制一个文件,然后删除该文件夹。我在 windows 10.
上使用 RoboCopy
现在我意识到我可以使用 /MOVE 开关,但是我 运行 在我尝试的第一种方法中出错,我想弄清楚为什么它正在发生。
我的文件夹结构如下:
ParentFolder
---->SubFolder
-------->test.txt
---->test.bat
从 ParentFolder I 运行 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
试试这个:
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
失败但第二个成功。
我试图从文件夹中复制一个文件,然后删除该文件夹。我在 windows 10.
上使用 RoboCopy现在我意识到我可以使用 /MOVE 开关,但是我 运行 在我尝试的第一种方法中出错,我想弄清楚为什么它正在发生。
我的文件夹结构如下:
ParentFolder
---->SubFolder
-------->test.txt
---->test.bat
从 ParentFolder I 运行 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
试试这个:
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
失败但第二个成功。