批處理bat命令 獲取當(dāng)前盤符和當(dāng)前目錄和上級(jí)目錄的代碼

字號(hào):


    批處理命令獲取當(dāng)前盤符和當(dāng)前目錄
    %~d0 是當(dāng)前盤符
    %cd% 是當(dāng)前目錄
    可以用echo %cd%進(jìn)行打印測(cè)試
    以下例子是命令行編譯Visual Studio編寫的程序:
    代碼如下:
    @echo off
    set b=%cd% //將當(dāng)前目錄保存到參數(shù)b中,等號(hào)前后不要有空格
    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)該將路徑加文件名用雙引號(hào)括起來(lái)。
    廢話不多說(shuō),直接看例子:
    代碼如下:
    @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
    通過(guò)批處理取當(dāng)前目錄的上一級(jí)目錄
    代碼如下:
    @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 上一級(jí)目錄是: %cd:~,1%盤的根目錄!
    ) else call echo 上一級(jí)目錄是: "%%bd:%bbd%\=%%"
    :end
    pause
    P.S.
    上面的程序我運(yùn)行并測(cè)試,分別在第一級(jí)目錄,第二級(jí)目錄,第三級(jí)目錄,第四級(jí)目錄,都執(zhí)行,程序的最終結(jié)果不太正確,這里只給你個(gè)思路,以及對(duì)各級(jí)目錄的獲取方法僅供參考。