批处理文件Rd错误:目录不为空

时间:2017-05-28 20:56:01

标签: batch-file del rmdir

我一直在处理代码,以便从.txt文件中输入的位置删除文件。

@echo off  
cd C:\Users\Troy\Desktop\Details  
set /p loc=<Location.txt  
rd /s /q "%loc%"  
echo %loc%  
pause

此代码返回以下输出

The directory is not empty.
C:\Users\Troy\Downloads\TV Shows    
Press any key to continue ...

现在文件Location.txt,打开时包含以下
C:\ Users \ Troy \ Downloads \ TV显示哪个符合我在第二行(上述输出)中得到的回声输出

另请注意,我已将批处理文件保存在C:\ Users \ Troy \ Desktop
因此,由于相同的位置,没有理由产生任何干扰。

奇怪的是,当我从同一位置的另一个批处理文件运行以下代码时,它运行得很好,并删除了所有文件。

@echo off  
set loc=C:\Users\Troy\Downloads\TV Shows  
rd /s /q "%loc%"  
echo %loc%  
pause

因此,两个代码之间的唯一区别是第一个代码从特定文件设置变量位置,而另一个代码具有预先输入的变量。

此外,我还尝试使用以下代码从该位置删除文件

@echo off  
cd C:\Users\Troy\Desktop\Details  
set /p loc=<Location.txt  
cd %loc%
del /s /q * >nul 2>&1
cd C:\Users\Troy\Desktop\Details
rd /s /q "%loc%"  
echo %loc%  
pause

在上面的代码中,delete命令工作正常并删除其中的所有文件。但是文件夹和子文件夹都是剩下的,这意味着rd命令无法正常工作

我甚至尝试了attrib -h这件事,但这也不起作用。 另请注意,我已尝试使用rmdir /s /q的各种排列和组合。但是不起作用。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您可能会遇到文件系统中的某些损坏。尝试运行chkdsk /f。您必须重新启动才能运行它,但看看它是否找到了可以纠正的内容,然后查看问题是否消失。