批處理之文件和文件夾操作

1. Dir命令

1.1. 概念

顯示目錄文件和子目錄列表。如果在沒有參數的情況下使用,則 dir 顯示磁盤的卷標和序列號,後接磁盤上目錄和文件的列表,包括它們的名稱和最近修改的日期及時間。dir 可以顯示文件的擴展名以及文件的字節大小。Dir 也顯示列出的文件及目錄的總數、累計大小和磁盤上保留的可用空間(以字節爲單位)。

1.2. 語法

dir [Drive:][Path][FileName] […] [/p] [/q] [/w] [/d] [/a[[:]attributes]][/o[[:]SortOrder]] [/t[[:]TimeField]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]

1.3. 參數

  • [Drive:][Dath]
    指定要查看列表的驅動器和目錄。

  • [FileName]
    指定要查看列表的特定文件或一組文件。

  • /p
    每次顯示一個列表屏幕。要查看下一屏,請按鍵盤上的任意鍵。

  • /q
    顯示文件所有權信息。

  • /w
    以寬格式顯示列表,在每一行上最多顯示 5 個文件名或目錄名。

  • /d
    與 /w 相同,但是文件按列排序。

  • /a[[:]attributes]
    只顯示那些指定屬性的目錄和文件名稱。如果省略 /a,dir 將顯示除隱藏文件和系統文件之外的所有文件名。如果在沒有指定 attributes 的情況下使用 /a,dir 顯示所有文件的名稱,包括隱藏文件和系統文件。以下列表描述了每個可用於 attributes 的值。冒號 (😃 是可選的。使用這些值的組合,並且不得用空格分隔這些值。 值 說明

    • h 隱藏文件
    • s 系統文件
    • d 目錄
    • a 準備好存檔的文件
    • r 只讀文件
    • -h 非隱藏的文件
    • -s 系統文件以外的文件
    • -d 只是文件(而非目錄)
    • -a 自上次備份後沒有更改過的文件
    • -r 非只讀的文件
  • /o [[:]SortOrder]
    控制 dir 排序和顯示目錄名和文件名的順序。如果省略 /o,dir 將按它們在目錄中出現的順序顯示名稱。如果在沒有指定 SortOrder 的情況下使用 /o,dir 顯示按字母順序排列的目錄名,然後顯示按字母順序排列的文件名。冒號 (😃 是可選的。以下列表描述了每個可用於 SortOrder 的值。使用這些值的任意組合,並不要用空格分隔這些值。 值 說明

    • n 按名稱的字母順序
    • e 按擴展名的字母順序
    • d 按日期和時間,最早的優先。
    • s 按大小,最小的優先
    • g 在文件之前分組的目錄
    • -n 按名稱的逆序字母(從 Z 到 A)排序
    • -e 按擴展名的逆序字母(從 .ZZZ 到 .AAA)排序
    • -d 按日期和時間,最晚的優先
    • -s 按大小,最大的優先
    • -g 在文件之後分組的目錄
  • /t [[:]TimeField]
    指定顯示或用於排序的時間字段。以下列表描述了每個可用於 TimeField 的值。 值 說明

    • c 創建
    • a 上次訪問
    • w 上次寫入
  • /s
    列出指定目錄及所有子目錄中出現的每個指定的文件名。

  • /b
    列出每個目錄名或文件名,每行一個(包含文件擴展名)。/b 不顯示標題信息或摘要。/b 替代 /w。

  • /l
    按小寫字母顯示未排序的目錄名和文件名。/l 不會將擴展字符轉換爲小寫字符。

  • /n
    顯示長列表格式,文件名在屏幕最右邊。

  • /x
    顯示 NTFS 和 FAT 捲上文件生成的短名稱。顯示與 /n 的顯示相同,但是短名稱顯示在長名稱之後。

  • /c
    按文件大小顯示多個分隔符。

  • /4
    顯示四位數字的年份格式。

  • /?
    在命令提示符顯示幫助。

1.4. 示例

1.4.1. 基本用法

rem 顯示當前目標下的文件及目錄名及時間信息
dir 
rem 將當前目錄文件及相關信息輸出到指定文件中
dir >report.txt
rem 只顯示當前目錄下的文件及目錄名
dir /b
rem 只顯示目錄,以下兩種形式均可
dir /b /a:d
dir /b /a:-d
rem 只顯示當前目錄下的文件,以下兩種形式均可
dir /b /a:-d
dir /b /a-d
rem 顯示指定目錄下所有文件包括子目錄文件及文件夾,以下顯示的完整路徑
dir /b /s d:\abc

1.4.2. 排序

rem 默認以文件名排序
dir 
dir /n
rem 以時間先後排序
dir /b /d
rem 以時間反向排序
dir /b /-d
rem 用sort排序
dir /b | sort

1.4.3. 使用通配符顯示包含指定字符文件

rem 顯示指定後綴的文件
dir /b *.txt
dir /b *.bat *.txt
rem 顯示中間包含abc的文件
dir /b *abc*
rem 顯示以abc開頭的文件
dir /b abc*

1.4.4 顯示當前目錄的文件路徑

@echo off
for /f "delims=" %%a in ('dir /b /a:-d') do (
rem %%~dpnx組合擴展名,顯示完整路徑
echo %%~dpnxa
)
pause

1.4.5. 顯示當前目錄中指定類型外的文件路徑

@echo off
rem "[^obj]$"必須要加雙引號,否則^將是轉義字符而不是取反的作用
rem ^|是管道符|的轉義
rem dir /s顯示的路徑是全路徑,所以不需要擴展路徑
for /f "delims=" %%a in ('dir /a:-d /b /s ^|findstr "[^obj]$"') do (
echo %%a
)
pause

2. cd(Chdir)

2.1. 概念

顯示當前目錄的名稱,或更改當前的文件夾。使用時僅帶一個驅動器號(例如,chdir C:),則 chdir 顯示當前驅動器名稱和文件夾。在不含參數的情況下使用,chdir 顯示當前驅動器和目錄。cd是chdir的簡寫。

2.2. 語法

cd [[/d] [Drive:][Path] […]] [[/d] [Drive:][Path] […]]

2.3. 參數

  • /d ,更改當前驅動器或驅動器的當前目錄。
  • [drive:][Path] ,指定要改爲的驅動器(如果不是當前驅動器)和目錄。
  • […] ,指明要改到父文件夾。
  • /? ,在命令提示符顯示幫助。

2.4. 示例

rem 更換磁盤
c:
d:
rem 顯示根磁盤
cd
rem 進入指定,必須是指定當前磁盤下的
cd d:\abc
rem 進入上級目錄
cd ..

3. md

3.1. 概念

md,亦可寫作mkdir。創建目錄或子目錄。

3.2. 語法

md [Drive:]Path

3.3. 參數

  • Drive: ,指定要創建新目錄的驅動器。
  • Path ,必需。指定新目錄的名稱和位置。單個路徑的最大長度由文件系統決定。
  • /? ,在命令提示符顯示幫助。

3.4. 示例

rem 創建指定目錄
md d:\abc
rem 創建多層目錄
md d:\abc\bcd
rem 當前目錄創建目錄
md abd

4. rd

4.1. 概念

rd,亦作Rmdir。刪除目錄。

4.2. 語法

rd [drive:]path [/s] [/q]

4.3. 參數

  • [drive:]path ,指定要刪除目錄的位置和名稱。
  • /s ,刪除指定目錄和所有子目錄以及包含的所有文件。使用 /s 來刪除目錄樹。
  • /q ,在安靜模式中運行 rmdir。不經確認即刪除目錄。
  • /? ,在命令提示符顯示幫助。

4.4. 注意

  • 不能刪除包含隱藏或系統文件的目錄
    不能刪除包含文件(包括隱藏或系統文件)的目錄。否則,會顯示以下消息:
    The directory not empty
    使用 dir 命令列出隱藏和系統文件,使用 attrib 命令刪除文件的隱藏和系統屬性

4.5. 示例

rem 刪除當前目錄的abc目錄,abc必須爲空
rd abc
rem 刪除當前目錄下的abc目錄包含子文件,且使用靜默模型
rd abc /s /q

5. del

5.1. 概念

del,亦作erase。刪除指定文件。

5.2. 語法

del [Drive:][Path] FileName [ …][/p] [/f] [/s] [/q] [/a[:attributes]]

5.3. 參數

  • [Drive:][Path] FileName ,指定要刪除的文件或文件集的位置和名稱。需要 Filename。可以使用多個文件名。用空格、逗號或分號分開文件名。

  • /p ,提示您確認是否刪除指定的文件。

  • /f ,強制刪除只讀文件

  • /s ,從當前目錄及其所有子目錄中刪除指定文件。顯示正在被刪除的文件名。

  • /q ,指定靜音狀態。不提示您確認刪除。

  • /a ,根據指定的屬性刪除文件。
    attributes
    指定下列文件屬性中的任意一種: 屬性 說明

    • r 只讀
    • a 存檔
    • s 系統
    • h 隱藏
    • 前綴表明“非”
  • /? ,在命令提示符顯示幫助。

5.4. 注意

  • 還可以使用通配符(* 和 ?)一次刪除多個文件。但是,在使用 del 命令時要慎重地使用通配符,以避免無意
  • 使用 del 從磁盤刪除某個文件之後,就無法恢復該文件。

5.5. 示例

rem 刪除當前目錄下的ABC目錄中的所有文件(不包括子目錄中的文件)
del ABC
rem 刪除指定類型文件
del *.txt
del *.txt *.obj
rem 使用通配符?(指代一個字符)刪除兩個字符文件名的的文件
del ??.txt

6. ren

6.1. 概念

ren,亦作rename,更改一個文件或一組文件的名稱。

6.2. 語法

ren [drive:][path] filename1 filename2

6.3. 參數

  • [drive:][path] filename1 ,指定要重命名的文件或文件集的位置和名稱。
  • filename2 , 爲文件指定新的名稱。如果使用通配符(* 和 ?),filename2 爲多個文件指定新名稱。重新命名文件時不能指定新的驅動器或路徑。
  • /? ,在命令提示符顯示幫助。

6.4. 示例

rem 修改單個文件或目錄名abc爲bcd
ren abc bcd
rem 修改當前目錄中所有.txt爲.doc
ren *.txt *.doc 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章