gpt4 book ai didi

Powershell Foreach-Object Foreach 循环从多个文件读取字符串并写入一个

转载 作者:行者123 更新时间:2023-12-03 12:21:33 30 4
gpt4 key购买 nike

我无法在一个 Foreach 或 Foreach-Object 循环中使用多个命令

我的情况是——

  • 我有很多文本文件,大约 100 个。
    所以他们被阅读 Get-ChildItem $FilePath -Include *.txt
  • 每个文件的结构都是相同的,只是关键信息不同。
    例子

    用户:Somerandomname

    计算机:Somerandomcomputer

  • -Replace命令我删除“用户:”和“计算机:”所以 $User = Somerandomname$computer = "Somerandomcomputer .
    在每个圆圈中 $user 和 $Computer 与 -Append 应该写入一个文件。然后应该读取下一个文件。
    foreach-object { $file = $_.fullname;

    应该使用,但我无法找出正确的语法。有人可以帮我吗?

    最佳答案

    假设您已经在别处定义了 $FilePath、$user 和/或 $computer,请尝试这样的操作。

    $files = Get-ChildItem $FilePath\*.txt
    foreach ($file in $files)
    {
    (Get-Content $file) |
    Foreach-Object { $content = $_ -replace "User:", "User: $user" ; $content -replace "Computer:", "Computer: $computer" } |
    Set-Content $file
    }

    您可以使用 ;Foreach-Object 中分隔其他命令,例如,如果您想为您的用户名和计算机名使用单独的命令。如果您没有将 Get-Content cmdlet 用括号括起来,您将收到错误消息,因为当 Set-Content 尝试使用它时,该进程仍将打开 $file。

    另请注意,使用 Powershell,双引号中的字符串将计算变量,因此您可以将 $user 放入字符串中以执行类似 "User: $user" 的操作。如果你愿意。

    关于Powershell Foreach-Object Foreach 循环从多个文件读取字符串并写入一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212138/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com