У меня есть проблема, которую я не могу решить, независимо от того, каким образом я ее обертываю. Я включаю в себя мой последний код, который не дает мне желаемого результата и кода для решения, которое работает, но только для одного файла за раз. Однако я не могу решить, как автоматически перебирать каждый из файлов.Результаты вывода нулевого результата Get-ChildItem
В двух словах у меня есть каталог со многими 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}
}
Привет, 'Set-Content' пишет содержимое *** в *** файле. 'Rename-Item' будет переименовывать его. – sodawillow