繁体   English   中英

使用 powershell 脚本语法的建议

[英]Advice with powershell script syntax

我正在编写一个 powershell 脚本来执行以下操作:

在文件夹Folder > Subfolder1 > Subfolder2 ,有 30 多个subfolders.zip ,其中还有另一个包含 200 个 HRML 文件的子文件夹。 我想在 HTML 文件中搜索关键字WTSE ,任何包含此类关键字的文件都将移动到另一个文件夹。

我的脚本目前如下所示:

Get-childitem C:\Users\XXXXX\Desktop\Folder\ -filter *.html -recurse | select-string 'WTSE'|foreach-object -process{move-item} C:\Users\XXXXX\Desktop\Folder2`

您快到了。 问题出在ForEach-Object之后的部分。

由于您不是使用正则表达式搜索字符串,因此我建议将-SimpleMatch添加到Select-String cmdlet。

试试下面:

$sourceFolder = 'C:\Users\XXXXX\Desktop\Folder'
$destination  = 'C:\Users\XXXXX\Desktop\Folder2'

(Get-ChildItem -Path $sourceFolder -Filter '*.html' -Recurse | Select-String -Pattern 'WTSE' -SimpleMatch) | 
    Move-Item -Destination $destination

Move-Item cmdlet 可以采用路径数组,这些路径也可以接受管道输入,因此此处无需使用ForEach-Object

注意我在第一部分(Get-ChildItem ... -SimpleMatch)周围使用括号。 这样可以防止进程因为文件正在使用而无法打开的错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM