gpt4 book ai didi

powershell - Get-ChildItem零结果输出

转载 作者:行者123 更新时间:2023-12-02 23:57:34 25 4
gpt4 key购买 nike

我有一个问题,无论用哪种方式包装,都无法解决。我包含的最新代码无法提供理想的结果,而该解决方案的代码有效,但一次只能提供一个文件。我无法解决如何自动循环遍历每个文件的问题。

简而言之,我有一个包含许多CSV文件的目录。CSV文件中的某些条目具有负值(-),我需要在所有实例中都删除此减号。

现在有效的是,如果我在单个文件上使用以下内容

$content = Get-Content "L:\Controls\BCR\0001cash.csv" | ForEach {$_ -replace $variable, ""} | Set-Content "L:\controls\bcr\0001temp.csv"

我想要做的是自动遍历数千个对象,而不必分别引用它们。

我从开始:
$Directory = "L:\Controls\BCR\"
$variable = "-"
$suffix = ".tmp"

要定义目录,要删除的减号和要更改为的文件后缀...
$Files = Get-ChildItem $Directory | Where-Object {$_.Extension -like "*csv*"} | Where-Object {$_.Name -like "*cash*"}

正在获取我希望使用的每个文件

然后我正在与
ForEach ($File in $Files) { Get-Content $Files | ForEach {$_ -replace $variable, ""} | Set-Content {$_.Basename + $Variable}

但是结果什么都没有...

不知所措?任何人???
$Directory = "L:\Controls\BCR\"
$variable = "-"
$suffix = ".tmp"


$Files = Get-ChildItem $Directory | Where-Object {$_.Extension -like "*csv*"} | Where-Object {$_.Name -like "*cash*"}

$process = ForEach ($File in $Files) { Get-Content $Files | ForEach {$_ -replace $variable, ""} | Set-Content {$_.BaseName + $suffix}



}

最佳答案

您在Get-Content cmdlet中使用了错误的变量($Files而不是$File)。您还可以简化脚本:

$Directory = "L:\Controls\BCR\"
$variable = "-"
$suffix = ".tmp"
Get-ChildItem $Directory -Filter '*cash*csv' |
ForEach-Object {
(Get-Content $_ -Raw) -replace $variable |
Set-Content {$_.BaseName + $suffix}
}

关于powershell - Get-ChildItem零结果输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40461640/

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