完善一個簡單的刪除項目單行程式碼

完善一個簡單的刪除項目單行程式碼

所以我想升級我的刪除項目單行程式碼。我想將主檔案路徑(\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test)分解為在腳本頂部定義的兩個變數。就像是:

  1. $rootdir = "\HQDEVAPP004\C$\LoneStar"
  2. $svcdir = {在此插入服務名稱}(即訊息路由器、處理器處理程序)

然後創建第三個變量,即完整目錄路徑,它將 1 + 2 粘合在一起,我知道這可以使用“+”運算符來完成,如果我錯了,請糾正我。

我的想法是,最終,我將能夠運行 foreach 循環來獲取並設置 svcdir 路徑,動態地將要刪除文件的完整目錄路徑粘合在一起,運行刪除過程,然後移動到下一個服務的資料夾。我希望我的解釋是正確的。如果有機會想看看我一直在使用的一行,我會將其放在下面:

Get-ChildItem -recurse \\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test\*.* | Remove-Item

答案1

首先,Remove-Item接受通配符的 Path 和 LiteralPath 屬性,因此您目前的一個班輪已經可以在沒有通配符的情況下工作Get-ChildItem

Remove-Item \\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test\*.* -Recurse -Force

關於“粘合在一起”,我建議使用Join-Path或 Format 運算符-f

Join-Path例(有了這個你不必擔心反斜線):

PS C:\> $rootdir = "\\HQDEVAPP004\C$\LoneStar"
PS C:\> $svcdir = "Message Router"
PS C:\> Join-Path $rootdir $svcdir
\\HQDEVAPP004\C$\LoneStar\Message Router

-f範例(請注意{0}您提供的參數將被放置的位置):

PS C:\> $rootdir = "\\HQDEVAPP004\C$\LoneStar\{0}"
PS C:\> $svcdir = "Message Router"
PS C:\> $rootdir -f $svcdir
\\HQDEVAPP004\C$\LoneStar\Message Router

所以是的,你可以遍歷所有路徑並執行這種黏合操作,但是你也可以直接提供你想要的所有路徑,Remove-Item因為它可以處理陣列:

cd "\\HQDEVAPP004\C$\LoneStar"
Remove-Item ".\Message Router\*.*",".\SomeOtherPath" -Recurse -Force

相關內容