批處理命令獲取當(dāng)前盤符和當(dāng)前目錄
當(dāng)前盤符:%~d0
當(dāng)前路徑:%cd%
當(dāng)前執(zhí)行命令行:%0
當(dāng)前bat文件路徑:%~dp0
當(dāng)前bat文件短路徑:%~sdp0
測試
echo 當(dāng)前盤符:%~d0echo 當(dāng)前路徑:%cd%echo 當(dāng)前執(zhí)行命令行:%0echo 當(dāng)前bat文件路徑:%~dp0echo 當(dāng)前bat文件短路徑:%~sdp0
效果如下圖所示
可以用echo %cd%進(jìn)行打印測試
windows 的快捷方式不能使用相對路徑。可以用批處理文件獲取相對路徑。
set pa=%cd% 將當(dāng)前路徑賦值給pa
echo %pa% 顯示pa變量
以下例子是命令行編譯Visual Studio編寫的程序:
@echo offset b=%cd% //將當(dāng)前目錄保存到參數(shù)b中,等號(hào)前后不要有空格C:cd program filescd microsoft visual studio cd common cd msdev98cd binmsdev "%b%/test.dsp" /MAKE "test- Win32 Release" /REBUILD //(VC6.0)devenv "%b%/Tool Utility/Tool Utility.sln" /REBUILD //(VS2010)pause
注意:如果路徑中包含空格,則應(yīng)該將路徑加文件名用雙引號(hào)括起來。
廢話不多說,直接看例子:
@echo offecho 當(dāng)前盤符:%~d0echo 當(dāng)前盤符和路徑:%~dp0echo 當(dāng)前盤符和路徑的短文件名格式:%~sdp0echo 當(dāng)前批處理全路徑:%~f0echo 當(dāng)前CMD默認(rèn)目錄:%cd%pause
通過批處理取當(dāng)前目錄的上一級(jí)目錄
@echo offif %cd%==%cd:~,3% echo 當(dāng)前目錄已經(jīng)是%cd:~,1%盤的根目錄!&goto endcd..set "bd=%cd%"cd..set "bbd=%cd%"if "%bbd%"=="%bd%" (echo 上一級(jí)目錄是: %cd:~,1%盤的根目錄!) else call echo 上一級(jí)目錄是: "%%bd:%bbd%/=%%":endpause
P.S.
上面的程序我運(yùn)行并測試,分別在第一級(jí)目錄,第二級(jí)目錄,第三級(jí)目錄,第四級(jí)目錄,都執(zhí)行,程序的最終結(jié)果不太正確,這里只給你個(gè)思路,以及對各級(jí)目錄的獲取方法僅供參考。
武林網(wǎng)小編以前用的一個(gè)bat,方便刪除文件夾里面的說明與復(fù)制自己的說明
@echo offsetlocal EnableDelayedExpansiondel jb51.txt /sdel 說明.htm /scopy F:/編輯/jb51tools/jb_down/book/ %cd%mkdir VeVB.COmdel %0 | move *.* VeVB.COm
代碼比較簡單啊,不懂的自行百度一下
新聞熱點(diǎn)
疑難解答
圖片精選