我一直在处理代码,以便从.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
的各种排列和组合。但是不起作用。
任何帮助表示感谢。
答案 0 :(得分:0)
您可能会遇到文件系统中的某些损坏。尝试运行chkdsk /f
。您必须重新启动才能运行它,但看看它是否找到了可以纠正的内容,然后查看问题是否消失。