检查当前文件夹是否为根目录

时间:2014-09-26 09:56:23

标签: batch-file batch-processing

我目前正在编写一个从特定目录开始的批处理文件 - 让我们说C:\FirstFolder\SecondFolder\ThirdFolder\ - 并且应该在每个文件夹中执行一项任务,然后上一个文件夹直到它已到达根目录(C:\)。

这里的问题是我们正在处理的驱动器不一定是C:\,它可能是任何驱动器号,所以我不能只检查%cd%是否等于{{1告诉程序停止浏览每个目录。

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:5)

像这样:

if "%cd:~3,1%"=="" echo IS ROOT

答案 1 :(得分:3)

如果有用户定义的CD变量覆盖动态值,则%cd:~3%测试可能会失败。

使用%__CD__:~3%更安全,因为它无法在Win 7或Win 8上覆盖。不确定Vista,但它可以在XP上覆盖。因此,如果在XP上,此解决方案不会比%CD:~3%更好或更差。

if "%__cd__:~3%"=="" echo ROOT FOLDER

有关%__CD__%的奇怪行为的详情,请参阅Why can't I access a variable named __CD__ on Windows 7?

答案 2 :(得分:2)

for %%a in (.) do for %%b in (..) do if "%%~fa"=="%%~fb" echo ROOT FOLDER

如果当前文件夹的完整路径与父文件夹的完整路径相同,那么我们就在根目录