溫故知新,Windows命令知多少,學習Command Shell和PowerShell

背景

在搭建DevOps流水線的時候,如果遇到Windows構建環境,我們或多或少需要用到CMD命令或Batch Script,每次到用的時候總覺得知識匱乏,記錄下。

常用命令

改變目錄(cd)

Change Directory

cd,是在Unix、類Unix、Windows和DOS操作系統下用於改變工作目錄的命令行命令。在Unix的Shell腳本與Windows或DOS的批處理文件中亦可使用。

通過cd命令,可以前進到子目錄、後退到父目錄、回到根目錄(Unix下爲/,DOS下爲\)或者進入到任何給出的目錄中去。

例如:

ls
cd Music

image

應注意的一點是,在不同的操作系統中,如果不給出變量會讓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

image

更多指令:

 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

image

在類Unix操作系統中,mkdir提供參數。最常用的三個參數爲:

  • -p: 以路徑名格式指定目錄名,如果路徑名中的目錄不存在,便會新建一個。
  • -v:顯示mkdir創建的每個目錄。通常與-p配合使用。
  • -m:指定目錄的文件權限。

移除目錄(rmdir)

Remove Directory

rmdir是UNIX、類Unix系統(例如FreeBSD、Linux)、DOS、OS/2或Windows操作系統中一個移除空文件夾的命令。

用法:

rmdir $ExitedDirName

例如:

rmdir TempDir

image

在UNIX系統中,rmdir只能移除空文件夾。若要遞歸的文件夾及其中的所有內容,請使用rm命令。

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章