1、 SETLOCAL的用法
2、chcp的用法
3、PUSHD命令和POPD命令
今天打開一個批處理文件,發現里面是這樣的:
@echo off
SETLOCAL
:: change active code page to 65001 for utf-8
chcp 65001
……
:: SHELL_ROOT - Location(Path) of this batch file
pushd "%~dp0"
set SHELL_ROOT=!cd!
popd
:: REDIST_ROOT - The root path of redist
set REDIST_ROOT=!SHELL_ROOT!/../..
pushd "!REDIST_ROOT!"
set REDIST_ROOT=!cd!
popd
ENDLOCAL
調查之后發現,SETLOCAL ……ENDLOCAL 的設定,只對本批處理文件有效,即設置路徑的時候,批處理里面可以單獨設置。
那么chcp是干什么用的呢?它主要是使批處理里面的字符能夠正常顯示。
比如:
chcp 65001 就是換成UTF-8代碼頁
chcp 936 可以換回默認的GBK
chcp 437 是美國英語
PUSHD命令
保存當前目錄以供 POPD 命令使用,然后改到指定的目錄。
POPD命令
更改到 PUSHD 命令存儲的目錄。
如果命令擴展被啟用,從推目錄堆棧 POPD 驅動器時,POPD
命令會刪除 PUSHD 創建的臨時驅動器號。
例如
pushd c:就是記錄下c:盤當你轉去E:盤后用popd就可以轉回c盤