使用PowerShell 指令稿建立、复制、搬移与删除档案或目录的方法,并提供各种常用的范例。


档案的操作与管理是使用者或管理者都时常会遇到的工作,当要处理的档案数量很多的时候,如果能善用PowerShell 的指令稿,自动化处理重复繁琐的工作,可以节省我们很多的力气与时间,以下是在PowerShell 中常见的一些档案与资料夹操作方法。

检查档案或目录是否存在

如果想要检查指定位置的档案或目录是否存在,可以使用 Test-Path

# 检查档案是否存在
True

若指定的档案或目录存在,则 Test-PathTrueFalseif

# 使用if 判断式
档案存在。

检查目录是否存在的方式跟档案的做法相同:

# 檢查目錄是否存在
if (Test-Path -Path C:\OfficeGuide) {
  "目錄存在。"
} else {
  "目錄不存在。"
}
目錄存在。

檢查路徑是檔案還是目錄

Test-Path 可以判斷檔案或目錄是否存在,如果要分別一個路徑是檔案還是目錄,可以使用 Get-Item 取得該路徑的資訊,然後依據該資訊檢查是否為目錄:

# 判斷路徑是否是目錄
if ((Get-Item C:\OfficeGuide) -is [System.IO.DirectoryInfo]) {
  "此路徑是目錄。"
} else {
  "此路徑不是目錄。"
}

建立檔案或目錄

若要建立一個新的目錄,可以使用 New-Item 指令:

# 建立新目錄
New-Item C:\MyFolder -ItemType "directory"

若要建立一個新的空白檔案,也是用類似的作法:

# 建立新檔案
New-Item C:\MyFolder\MyFile.txt -ItemType "file"

複製檔案或目錄

若要複製檔案,可以使用 Copy-Item 指令:

# 複製檔案
Copy-Item C:\MyFile.txt -Destination C:\MyFile2.txt

若要將檔案複製到指定的目錄下(檔案名稱維持不變),則 -Destination 就指定為目的目錄的路徑即可:

# 複製檔案至指定目錄
Copy-Item C:\MyFile.txt -Destination D:\MyFolder

如果要複製整個目錄(連同裡面的所有檔案),則要加上 -Recurse 參數:

# 複製目錄
Copy-Item C:\OfficeGuide -Destination C:\OfficeGuide2 -Recurse

若要複製的目的檔案已經存在,而且是一個唯讀檔案的話,在複製檔案時就會失敗,若要強制複製檔案,可以加上 -Force 參數:

# 強制複製檔案
Copy-Item C:\MyFile.txt -Destination C:\MyFile2.txt -Force

搬移檔案或目錄

若要搬移檔案,可以使用 Move-Item 指令:

# 搬移檔案
Move-Item C:\MyFile.txt -Destination D:\MyFile2.txt

若要搬移檔案至指定目錄(檔案名稱維持不變),則 -Destination 就指定為目的目錄的路徑即可:

# 搬移檔案至指定目錄
Move-Item C:\MyFile.txt -Destination D:\MyFolder

搬移目錄的作法也相同:

# 搬移目錄
Move-Item C:\MyFolder -Destination D:\

刪除檔案或目錄

若要移除檔案,則可使用 Remove-Item 指令:

# 移除檔案
Remove-Item C:\MyFolder\MyFile.txt

移除目錄的作法也相同:

# 移除目錄
Remove-Item C:\MyFolder

若要移除的目錄中還有其他的檔案,則在移除的時候 PowerShell 會詢問使用者是否要全部移除,如果不想讓它詢問,可以加上 -Recurse 參數,這樣它就會自動把所有裡面的資料一次刪除:

# 移除目錄(不詢問、直接移除)
Remove-Item C:\MyFolder -Recurse

參考資料:iT邦幫忙iT邦幫忙iT邦幫忙

Oh 游读者 👋
It’s nice to meet you.

每周三,您都将收到一封内容详实的Newsletter.

close

Oh 游读者 👋
It’s nice to meet you.

每周三,您都将收到一封内容详实的Newsletter.