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}
}
我有一个问题,无论我以何种方式结束都无法解决。我包括了我的最新代码,它没有给我想要的结果和一个解决方案的代码,但一次只能为一个文件工作。但是,我不知道如何自动循环遍历每个文件。
简而言之,我有一个包含许多 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}
}