当文件内容与文件夹名称不匹配时,运行powershell脚本

时间:2017-08-23 15:22:49

标签: powershell

我尝试运行的Powershell脚本只在.txt文件的文件内容与其他文件夹中的文件夹名称匹配时才会运行。我不知道我是否过于复杂的剧本,但任何帮助将不胜感激。

OnMapElementClick

1 个答案:

答案 0 :(得分:0)

Get-Content | Out-String将输出一个字符串的对象而不是字符串数组。

包含3行的示例文本文件:

(Get-Content -path Example.txt | Out-String).count
1
(Get-Content -path Example.txt).count
3

这意味着当您使用Out-String / -in文本文件上的-contains后进行数组比较时,基本上是-eq

正如Matt在评论中建议的那样,您可以使用通配符或正则表达式运算符在较大的字符串中查找名称。

$Content = Get-Content -path "c:\Test Folder\Content\content.txt" -Raw
$Archive = Get-ChildItem -path "c:\Test Folder\Archive\" -Name

If($Content -notmatch $Archive){ 

或者,假设存档名称是文件中的一行。您可以摆脱Out-String并使用Get-Content来获取字符串数组并使用数组比较。

$Content = Get-Content -path "c:\Test Folder\Content\content.txt"
$Archive = Get-ChildItem -path "c:\Test Folder\Archive\" -Name

If($Archive -notin $Content ){