我有一個文件夾不包含擴展名爲「rar」的任何文件。我運行使用GCI從PowerShell的命令行下面(的Get-ChildItem別名):確定具有特定文件擴展名的文件是否不在使用PowerShell的文件夾中
PS> gci *.rar
正如預期的那樣,因爲不存在這樣的文件沒有被報告。但是當我做一個"echo $?"
時,它返回true。
如何測試給定文件擴展名的文件不存在?我在Windows上使用PowerShell v2 7.
我有一個文件夾不包含擴展名爲「rar」的任何文件。我運行使用GCI從PowerShell的命令行下面(的Get-ChildItem別名):確定具有特定文件擴展名的文件是否不在使用PowerShell的文件夾中
PS> gci *.rar
正如預期的那樣,因爲不存在這樣的文件沒有被報告。但是當我做一個"echo $?"
時,它返回true。
如何測試給定文件擴展名的文件不存在?我在Windows上使用PowerShell v2 7.
#If no rar files found...
if (!(gci c:\ *.rar)){
"No rar files!"
}
#If rar files found...
if (gci c:\ *.rar){
"Found rar file(s)!"
}
'如果' 評估括號內指定的條件,這將返回一個布爾值(TRUE或FALSE)之間的代碼如果條件返回true,則執行大括號。在這種情況下,如果gci返回0將返回False的文件(可能相當於'if exists'),所以在第一個示例中,我們使用而不是運算符(!)基本上反轉邏輯以返回True並執行代碼塊。在第二個例子中,我們正在尋找rar文件的存在,並希望代碼塊在發現任何時候執行。
gci返回一個數組。您可以檢查數組中有多少個結果。
if ((gci *.rar | measure-object).count -eq 0)
{
"No rars"
}
使用PowerShell v3的這是一個容易一點:
if ((gci *.rar).Count -eq 0)
{
"No rars"
}
+1是的,這有效。不知道度量對象,謝謝。 – Sabuncu
+1更好,那麼我的答案 –
+1 This works。你能解釋一下if語句如何從gci cmdlet中得到結果嗎?謝謝。 – Sabuncu
@Sabuncu我已經更新了我的答案,希望有所幫助。 – nimizen