【发布时间】: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