Get-ChildItem 零结果输出

Get-ChildItem Zero Results Output

我有一个问题,无论我以何种方式结束都无法解决。我包括了我的最新代码,它没有给我想要的结果和一个解决方案的代码,但一次只能为一个文件工作。但是,我不知道如何自动循环遍历每个文件。

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

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

$content = Get-Content "L:\Controls\BCR[=10=]01cash.csv" | ForEach {$_ -replace $variable, ""} | Set-Content "L:\controls\bcr[=10=]01temp.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}
    }