powershell - 如何在Powershell中使用While循环?

标签 powershell powershell-2.0

我正在使用变量$ listing作为文件名,如下所示。

Get-Content BHS_output.txt | Select-String -pattern $listing| sort | Foreach-Object {$_ -replace "$listing", ""} > $listing

其中$listing是第一次迭代时来自文件第一行的变量。在第二次迭代中
$listing = Get-Content .\file.txt | select-object -First 1 . 
$listing必须具有BHS_E_CNBY20150622035126.CSV。不是BHS_E_BHSA20150622035126.CSV。

文件名称:TestFile1_sorted.txt
BHS_E_BHAA20150622035126.CSV
BHS_E_BHSA20150622035126.CSV
BHS_E_CNBY20150622035126.CSV
BHS_E_PACS20150622035126.CSV

最佳答案

您将得到的错误将与保存到您正在读取的文件相同,该文件是您创建的管道的产物。每行一次处理一次,因此在文件仍处于打开状态以继续读取的同时将第二行写入文件。

(Get-Content $path) | Select-Object -Skip 1 | Set-Content $path

(Get-Content $path)放在方括号中会将整个文件处理到内存中。注意文件是否很大。然后,其余代码将正常运行。

关于powershell - 如何在Powershell中使用While循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137887/

相关文章:

powershell - 搜索注册表并创建新项目

c# - 使用 C# 使用 V2 方法执行带有命令行参数的 PowerShell 脚本

powershell - 执行AddDay时不应用日期格式

Powershell,添加项目以散列表

powershell - 如何从文件夹中的所有文本文件中删除单词?

powershell - CruiseControl.Net 不能很好地与 PowerShell 配合使用

Powershell 2.0 最大参数数

powershell - 从 Powershell 中的变量执行 "real life"命令行

xml - Powershell根据子节点值选择父xml节点并添加子元素

powershell - 使用foreach循环在powershell中批量重命名文件