背景
在搭建DevOps流水線的時候,如果遇到Windows構建環境,我們或多或少需要用到CMD命令或Batch Script,每次到用的時候總覺得知識匱乏,記錄下。
常用命令
改變目錄(cd)
Change Directory
cd
,是在Unix、類Unix、Windows和DOS操作系統下用於改變工作目錄的命令行命令。在Unix的Shell腳本與Windows或DOS的批處理文件中亦可使用。
通過cd
命令,可以前進到子目錄、後退到父目錄、回到根目錄(Unix下爲/
,DOS下爲\
)或者進入到任何給出的目錄中去。
例如:
ls
cd Music
應注意的一點是,在不同的操作系統中,如果不給出變量會讓cd產生不同的結果。例如,如果在DOS下不給出變量而執行,會顯示出當前的工作目錄來;而在Unix下不給出變量而執行,則會返回到起始目錄去。在腳本或批處理內執行的cd,也會產生不同的結果。在DOS中,批處理文件中使用的該命令可以直接改變調用者的當前目錄;而在Unix下,使用cd命令的腳本則無法改變調用者的當前目錄。這是因爲在Unix下的腳本通常在子外殼中執行。
cd通常是由命令行解釋器內建提供的。絕大多數的Unix shell(Bourne shell、tcsh、bash等)、Windows的cmd.exe和Windows PowerShell、以及DOS的COMMAND.COM均是這種情況。
Windows的命令行外殼通常使用Windows API來改變當前的工作目錄;而Unix系統的cd則是調用POSIX C的函數chdir():即是,當該命令執行時,不會爲前往另一個目錄而創建一個新的進程,而是由外殼代爲執行這條命令,ls等其他命令也是這種情況。這是因爲,創建新的進程時,子進程會繼承父進程創建時的目錄。而如果cd命令繼承了父進程的目錄,則它永遠也不能達到它的目標。
目錄(dir)
Directory
dir
是一個條列檔案及目錄的命令行界面指令,在CP/M、VMS、DOS、OS/2、Singularity及Microsoft Windows等操作系統中都有此指令。
dir
指令基本上會列出目錄中的檔案及子目錄的名稱,也可以列出其檔案大小,建立時間等相關資訊,並且列出所在的磁盤機、可用空間等資訊。dir指令也可以尋找其檔案名稱符合特定條件的檔案。
例如:
dir
更多指令:
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
Specifies drive, directory, and/or files to list.
/A Displays files with specified attributes.
attributes D Directories R Read-only files
H Hidden files A Files ready for archiving
S System files I Not content indexed files
L Reparse Points - Prefix meaning not
/B Uses bare format (no heading information or summary).
/C Display the thousand separator in file sizes. This is the
default. Use /-C to disable display of separator.
/D Same as wide but files are list sorted by column.
/L Uses lowercase.
/N New long list format where filenames are on the far right.
/O List by files in sorted order.
sortorder N By name (alphabetic) S By size (smallest first)
E By extension (alphabetic) D By date/time (oldest first)
G Group directories first - Prefix to reverse order
/P Pauses after each screenful of information.
/Q Display the owner of the file.
/R Display alternate data streams of the file.
/S Displays files in specified directory and all subdirectories.
/T Controls which time field displayed or used for sorting timefield.
C Creation
A Last Access
W Last Written
/W Uses wide list format.
/X This displays the short names generated for non-8dot3 file names. The format is that of /N with the
name inserted before the long name. If no short name is present, blanks are displayed in its place.
/4 Displays four-digit years.
使用說明:
- 開關符
- [/P]表示分屏顯示。當文件較多,每顯示完一整屏後屏幕暫停,並提示“請按任意鍵繼續”,用戶按鍵後顯示下一屏,重複該過程直至顯示完畢。
- [/W]表示以簡潔形式(緊縮格式)顯示文件清單,目錄中只顯示文件名和擴展名。
- [/S]對於給定的文件標誌符,顯示其在指定目錄及指定目錄所有下級子目錄中的相應位置清單。
- 文件標誌符filespec中的文件名和擴展名可以使用通配符?和*
- 當文件名是.時,可以省略不寫。例如:.ext,filename.可簡寫爲filename.。
- 該命令可以將顯示結果送向打印機。
創建目錄(mkdir)
Make Directory
mkdir
命令在Unix、DOS、OS/2和Microsoft Windows操作系統以及PHP腳本語言中用於創建一個目錄。DOS、OS/2和Windows中,這條指令常被簡寫用作md
。
用法:
mkdir $NewDirName
例如:
mkdir TempDir
在類Unix操作系統中,mkdir提供參數。最常用的三個參數爲:
-p
: 以路徑名格式指定目錄名,如果路徑名中的目錄不存在,便會新建一個。-v
:顯示mkdir創建的每個目錄。通常與-p配合使用。-m
:指定目錄的文件權限。
移除目錄(rmdir)
Remove Directory
rmdir
是UNIX、類Unix系統(例如FreeBSD、Linux)、DOS、OS/2或Windows操作系統中一個移除空文件夾的命令。
用法:
rmdir $ExitedDirName
例如:
rmdir TempDir
在UNIX系統中,rmdir只能移除空文件夾。若要遞歸的文件夾及其中的所有內容,請使用rm命令。