1. 程式人生 > >我能用Windows PowerShell做什麼:刪除一個檔案或資料夾(或其它輸入的目標)

我能用Windows PowerShell做什麼:刪除一個檔案或資料夾(或其它輸入的目標)

注:本篇文章,未在聯絡作者以及得到許可的情況下, 禁止以任何形式進行轉載。

刪除一個檔案或資料夾(或其它輸入的目標)

Remove-Item cmdlet 正好顧名思義:它能使你清除一個東西和所有東西。清除檔案C:/Script/test.txt ?那就刪除它:

Remove-Item c:/scripts test.txt

你也可以使用通配字元刪除多個專案。舉個例子,這個命令會刪除所有在 C:/Scripts 裡的檔案 :

Remove-Item c:/scripts/*

這裡是一個捕捉,當然。假設C:/Script包含替代的資料夾。在這種情況下,你可以提示是否要真的想要刪除在Scripts資料夾裡的任何東西。

Confirm
The item at C:/test/scripts has children and the 
-recurse parameter was not specified. 
If you 
continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [
?] Help
(
defaultis"Y"):

有快速繞過這個的方法嗎?對;只要在你的命令結尾處附加 -recurse 引數:

Remove-Item c:/scripts/*-recurse

這是一個有趣的變化。假設這個Scripts資料夾包含了一大堆檔案和你想要刪除的所有東西。等等:也許不是所有的東西,也許想要留下什麼 .wav檔案。 沒問題;只要使用 -exclude 引數並打入要說明的檔案應該把它排出刪除:

Remove-Item c:/scripts/*-exclude *.wav

那是什麼?現在你僅僅想要刪除 .wav 和 .mp3 檔案,保留其它所有型別?你不得不要求(使用 -include 引數):

Remove-Item c:/scripts/*-include .wav,.mp3

當你想通後,如果你使用 -include 引數 cmdlet 將執行在那些指定專案的一部分引數上(不錯,你可以指定多個專案;只要分開時用逗號)。相比之下,如果你使用 -exclude 引數排除這些專案將免除cmdlet的行動。

是的,如果你想得到真正喜歡的,你可以使用 -include 與 -exclude 在同一個命令中。你認為在執行這個命令的時候會發生什麼?

Remove-Item c:/scripts/*-include *.txt –exclude *test*

你懂得:在C:/Scripts資料夾裡所有的 .txt 檔案(當用 -include 引數標明時)都將被刪除,除了一些在檔名為test字元值的任何檔名(當用 -exclude 引數標明時)。嘗試一些不同的變化,不久它將變的很完美。

順便說一下,Remove-Item cmdlet 有一個 -whatif 引數,這實際上並不能刪除任何東西,但能告訴你會發生什麼,如果你使用 Remove-Item。沒有任何有用的意義那你是什麼意思?這裡,你先看看這個命令:

Remove-Item c:/scripts/*.vbs -whatif

如果我們執行這個命令,在資料夾C:/Scripts裡所有 .vbs 型別的檔案將會刪除;當然我們會得到像這樣返回的如下資訊,讓我們知道哪個檔案被刪除,如果你使用 Remove-Item 外部的 -whatif 引數:

What if: Performing operation "Remove File" on Target "C:/scripts/imapi.vbs".
What 
if: Performing operation "Remove File" on Target "C:/scripts/imapi2.vbs".
What 
if: Performing operation "Remove File" on Target "C:/scripts/methods.vbs".
What 
if: Performing operation "Remove File" on Target "C:/scripts/read-write.vbs
"
.
What if: Performing operation "Remove File" on Target "C:/scripts test.vbs".
What 
if: Performing operation "Remove File" on Target "C:/scripts/winsat.vbs".

除此之外,你可以刪除其它的檔案和資料夾。舉個例子,任命一個show別名來獲取這個清除命令:

Remove-Item alias:/show

做一個說明,如這個具體位置:alias:/ 。這是 Windows PowerShell 驅動的標準記號法。驅動字母,然後冒號,然後由一個"/" 。

Set-Location env:

Remove-Item 別名

  • ri
  • rd
  • erase
  • rm
  • rmdir
  • del