檢查檔案/目錄是否存在
使用Test-Path
指令檢查,存在傳回True
,不存在傳回False
1 2 3 4
| Test-Path -Path "D:\Logfiles\xxx.log"
Test-Path -Path "D:\Logfiles"
|
檢查是路徑是檔案或是目錄
1.可使用Test-Path
的-FileType
參數來判斷,用Leaf
檢查是否是檔案,或用Container
來檢查是否為目錄
1 2 3 4 5 6 7 8
| Test-Path -Path "D:\Logfiles\xxx.log" -PathType Leaf
Test-Path -Path "D:\Logfiles\xxx.log" -PathType Container
Test-Path -Path "D:\Logfiles" -PathType Leaf
Test-Path -Path "D:\Logfiles" -PathType Container
|
2.使用System.IO.DirectoryInfo
來判斷是否為目錄
1 2 3 4
| $(Get-Item "D:\Logfiles\xxx.log") -is [System.IO.DirectoryInfo]
$(Get-Item "D:\Logfiles") -is [System.IO.DirectoryInfo]
|
3.使用PSIsContainer
判斷
1 2 3 4
| $(Get-Item "D:\Logfiles\xxx.log").PSIsContainer
$(Get-Item "D:\Logfiles").PSIsContainer
|
建立檔案/目錄
建立新目錄或一個新的空白檔案,可使用New-Item指令
1 2 3 4
| New-Item "D:\LogArchive" -ItemType "Directory"
New-Item "D:\LogArchive\xxx.bak" -ItemType "File"
|
複製檔案/目錄
複製單一檔案
1 2 3 4
| Copy-Item "D:\Logfiles\xxx.log" -Destination "D:\Logfiles\xxx.bak"
Copy-Item "D:\Logfiles\xxx.log" -Destination "D:\LogArchive"
|
複製目錄下所有資料
複製整個目錄(連同裡面的所有檔案),需加上Recurse
參數,若未加上Recurse
參數,只會複製Logfiles下面這一層的檔案與子目錄,但子目錄內檔案不會複製
1
| Copy-Item "D:\Logfiles\*" -Destination "D:\LogArchive" -Recurse
|
搬移檔案/目錄
使用Move-Item
指令,-Destination
參數使用方法同Copy-Item
1
| Move-Item "D:\Logfiles\xxx.log" -Destination "D:\LogArchive\xxx.bak"
|
刪除檔案/目錄
使用Remove-Item
指令
1 2 3 4
| Remove-Item "D:\LogArchive\xxx.bak"
Remove-Item "D:\LogArchive"
|
確認路徑是否為UNC路徑