【问题标题】:Concatenate filenames list with string用字符串连接文件名列表
【发布时间】:2016-03-24 19:22:01
【问题描述】:

我有这个将文件名存储到文本文件中的脚本:

Get-ChildItem -Path "C:\Users\MyUser\Documents\Files" -Name |
  Out-File "C:\Users\MyUser\Documents\Files\FileList.txt"

结果是:

file1.txt
文件2.txt
文件 3.txt
文件4.txt

我希望它在一个文本文件中生成一个 PowerShell 语句列表,以便我以后可以像这样使用它们:

Add-Content -Path "C:\Users\MyUser\Documents\Files\file1.txt" -Value "foo"
Add-Content -Path "C:\Users\MyUser\Documents\Files\file2.txt" -Value "foo"
Add-Content -Path "C:\Users\MyUser\Documents\Files\file3.txt" -Value "foo"
Add-Content -Path "C:\Users\MyUser\Documents\Files\file4.txt" -Value "foo"

是否可以按照我需要的方式将字符串连接到文件名?

【问题讨论】:

  • 我不清楚你想在这里实现什么。您的意思是要在文件中生成 PowerShell 语句列表吗?做什么的?请退后一步,描述您要解决的实际问题,而不是您认为的解决方案。
  • @AnsgarWiechers,我在问题中添加了 PowerShell 语句的目的,我认为对于可能看到问题的人来说现在可能更清楚了。

标签: shell powershell


【解决方案1】:

我也不确定我是否正确理解了您的问题,但也许这就是您要寻找的:

Get-ChildItem -Path "C:\Users\MyUser\Documents\Files" | 
    % {
        "Add-Content -Path `"{0}`" -Value `"foo`"" -f $_.FullName
    } | Out-File "C:\Users\MyUser\Documents\Files\FileList.txt"

【讨论】:

    【解决方案2】:

    我有点不确定你在问什么,但如果我说得对,你想获取文件列表,在文件末尾添加一行,并将文件名放在文本中文件。

    Get-ChildItem -Path "C:\Users\MyUser\Documents\Files" | 
        ForEach-Object {
            $_ | Add-Content -Value "foo"
            $_.Name
        } | Out-File "C:\Users\MyUser\Documents\Files\FileList.txt"
    

    这是一种可能的方式。它将每个项目传递给ForEach-Object,其中将一个值添加到文件中,并将文件名发送到管道。这将通过管道传输到写入列表的Out-File

    有很多方法可以实现这一点;最好学习和使用流水线,然后查看各种 cmdlet 以及它们如何处理流水线输入。

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 2018-05-15
      • 2012-02-24
      • 2021-06-25
      相关资源
      最近更新 更多