首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用power shell脚本从目录中排除文件夹

如何使用power shell脚本从目录中排除文件夹
EN

Stack Overflow用户
提问于 2021-12-01 13:01:58
回答 2查看 545关注 0票数 0

我有包含几个文件夹的目录,我想排除包含一个字符串的文件夹名。我尝试使用以下命令使用通配符选项(在排除变量中),该选项在排除部分中不起作用。

代码语言:javascript
复制
$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中实现这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-01 13:10:29

代码语言:javascript
复制
$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

你需要与数组匹配,而不是从字面上看星号。

票数 0
EN

Stack Overflow用户

发布于 2021-12-01 13:31:06

您应该能够在Get-ChildItem调用中使用一个-Excludes参数来完成所有这些工作,该参数需要一个模式数组来排除:

代码语言:javascript
复制
$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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70184708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档