我有包含幾個檔案夾的目錄,我想排除包含字串的檔案夾名稱。我嘗試使用通配符選項(在排除變數中)執行以下命令,該命令在排除部分不起作用。
$dirName = "C:\Users\xyz\Desktop\powershellScripts\destmonitors"
$excludes = "PortMonitor","ProcessMonitor","FileWatcher","UrlMonitor","*SQLMonitor*","LogMonitor"
Get-ChildItem "C:\Users\xyz\Desktop\powershellScripts\monitors\*" -Directory | Where-Object{$_.Name -notin $excludes} | Copy-Item -Destination $dirName -Recurse -Force
示例:- 假設我在監視器目錄中有檔案夾,如 SQLMonitor、CSTK123_SQLMonitor、TEST_SQLMonitor、SQLMonitor_abc ...現在我想使用通配符排除這些檔案夾
如何在 PowerShell 中實作這一點。
uj5u.com熱心網友回復:
$dirName = "C:\Users\sj01856\Desktop\powershellScripts\destmonitors"
$excludes = "PortMonitor","ProcessMonitor","FileWatcher","UrlMonitor","*SQLMonitor*","LogMonitor"
Get-ChildItem "C:\Users\sj01856\Desktop\powershellScripts\monitors\*" -Directory | Where-Object{$_.Name -notmatch ($excludes -join "|")} | Copy-Item -Destination $dirName -Recurse -Force
您需要與陣列匹配,而不是按字面意思使用星號。
uj5u.com熱心網友回復:
您應該能夠在Get-ChildItem呼叫中使用-Excludes引數完成所有這些操作,該引數需要排除一組模式:
$dirName = "C:\Users\xyz\Desktop\powershellScripts\destmonitors"
$excludes = "PortMonitor","ProcessMonitor","FileWatcher","UrlMonitor","*SQLMonitor*","LogMonitor"
Get-ChildItem "C:\Users\xyz\Desktop\powershellScripts\monitors" -Directory -Exclude $excludes |
Copy-Item -Destination $dirName -Recurse -Force
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/372249.html
