文章目录[隐藏]

使用PowerShell 指令稿建立、复制、搬移与删除档案或目录的方法,并提供各种常用的范例。
档案的操作与管理是使用者或管理者都时常会遇到的工作,当要处理的档案数量很多的时候,如果能善用PowerShell 的指令稿,自动化处理重复繁琐的工作,可以节省我们很多的力气与时间,以下是在PowerShell 中常见的一些档案与资料夹操作方法。
检查档案或目录是否存在
如果想要检查指定位置的档案或目录是否存在,可以使用 Test-Path
# 检查档案是否存在
True
若指定的档案或目录存在,则 Test-Path
True
False
if
# 使用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