批處理命令獲取當(dāng)前盤符和當(dāng)前目錄
%~d0 是當(dāng)前盤符
%cd% 是當(dāng)前目錄
可以用echo %cd%進(jìn)行打印測試
以下例子是命令行編譯Visual Studio編寫的程序:
代碼如下:
@echo off
set b=%cd% //將當(dāng)前目錄保存到參數(shù)b中,等號前后不要有空格
C:
cd program files
cd microsoft visual studio
cd common
cd msdev98
cd bin
msdev "%b%\test.dsp" /MAKE "test- Win32 Release" /REBUILD //(VC6.0)
devenv "%b%\Tool Utility\Tool Utility.sln" /REBUILD //(VS2010)
pause
注意:如果路徑中包含空格,則應(yīng)該將路徑加文件名用雙引號括起來。
廢話不多說,直接看例子:
代碼如下:
@echo off
echo 當(dāng)前盤符:%~d0
echo 當(dāng)前盤符和路徑:%~dp0
echo 當(dāng)前盤符和路徑的短文件名格式:%~sdp0
echo 當(dāng)前批處理全路徑:%~f0
echo 當(dāng)前CMD默認(rèn)目錄:%cd%
pause
通過批處理取當(dāng)前目錄的上一級目錄
代碼如下:
@echo off
if %cd%==%cd:~,3% echo 當(dāng)前目錄已經(jīng)是%cd:~,1%盤的根目錄!&goto end
cd..
set "bd=%cd%"
cd..
set "bbd=%cd%"
if "%bbd%"=="%bd%" (echo 上一級目錄是: %cd:~,1%盤的根目錄!
) else call echo 上一級目錄是: "%%bd:%bbd%\=%%"
:end
pause
P.S.
上面的程序我運行并測試,分別在第一級目錄,第二級目錄,第三級目錄,第四級目錄,都執(zhí)行,程序的最終結(jié)果不太正確,這里只給你個思路,以及對各級目錄的獲取方法僅供參考。
更多信息請查看IT技術(shù)專欄