May*_*hem 75 windows batch-file
我正在制作批处理脚本,部分脚本正在尝试删除目录及其所有子目录.我收到关于子目录不为空的间歇性错误.我读了一篇关于索引是罪魁祸首的文章.我禁用了WSearch,但最终我又得到了错误.
rmdir /S /Q "C:\<dir>\"
Run Code Online (Sandbox Code Playgroud)
Bof*_*ain 63
我遇到了与哈里约翰斯顿提到的相同的问题.rmdir /s /q
会抱怨目录不是空的,即使/s
是为你做空的!我个人认为这是Windows中的一个错误.
我的解决方法是del
在删除目录之前对目录中的所有内容:
del /f /s /q mydir 1>nul
rmdir /s /q mydir
Run Code Online (Sandbox Code Playgroud)
(1>nul
隐藏标准输出,del
否则,它会列出它删除的每个文件.)
Har*_*ton 41
我很熟悉这个问题.最简单的解决方法是有条件地重复操作.我从来没有看到它连续两次失败 - 除非实际上有一个打开的文件或权限问题,显然!
rd /s /q c:\deleteme
if exist c:\deleteme rd /s /q c:\deleteme
Run Code Online (Sandbox Code Playgroud)
小智 18
我刚遇到同样的问题,它与一些丢失或损坏的文件有关.要解决此问题,只需运行检查磁盘:
chkdsk /F e:
Run Code Online (Sandbox Code Playgroud)
这可以从搜索窗口框或cmd提示符运行.该/F
修复它发现,像恢复文件的任何问题.一旦完成运行,您可以像平常一样删除文件和文件夹.
小智 18
以管理员身份输入命令提示符并运行
rmdir /s <FOLDER>
Run Code Online (Sandbox Code Playgroud)
我有一个类似的问题,试图通过 Windows 资源管理器删除一个空文件夹。向我展示了非空错误,所以我想我是通过 admin cmd 尝试的,但这里的答案都没有帮助。
在我将文件移动到空文件夹后。我能够删除非空文件夹
就我而言,我只是将文件夹移动到根目录,就像这样。
move <source directory> c:\
Run Code Online (Sandbox Code Playgroud)
然后运行命令删除目录
rmdir c:\<moved directory> /s /q
Run Code Online (Sandbox Code Playgroud)
正如 @gfullam 在对 @BoffinbraiN 的回答的评论中所述,<dir>
您要删除的本身可能不是包含文件的目录:其中可能有子目录<dir>
收到“目录不为空”消息,唯一的解决方案是递归地迭代目录,手动删除所有包含的文件......我最终决定使用rm
UNIX的端口。rm.exe
附带了 Git Bash、MinGW、Cygwin、GnuWin32 等。您只需将其父目录放在 PATH 中,然后像在 UNIX 系统中一样执行即可。
批处理脚本示例:
set PATH=C:\cygwin64\bin;%PATH%
rm -rf "C:\<dir>"
Run Code Online (Sandbox Code Playgroud)
我认为可能的原因有以下几种:
对于1.),您可以尝试runas /user:Administrator
获得更高的权限或通过上下文菜单以管理员身份启动批处理文件。如果这没有帮助,也许连管理员都没有权限。然后你需要接管该目录的所有权。
对于 2.) 下载Process Explorer,单击Find/Find handle or DLL...
或按Ctrl+F,键入目录名称并找出使用它的人。如果可能,请关闭使用该目录的应用程序。
归档时间: |
|
查看次数: |
143051 次 |
最近记录: |