Как записать имя файла (базовое имя, а не полное имя) в тот же файл, заменив строку, присутствующую в файле.По сути, у меня есть куча файлов .psf в папке с именем C: \ Downloads \ PreValidation.
- Я хочу изменить каждый файл на формат .csv и
- во время выполненияпоэтому я хочу заменить строку с именем «Space Planning Project», присутствующую в одной из записей файла, на имя файла без расширения.
Это сценарий, который я пытаюсь запустить -
foreach($file in (dir C:\Downloads\PreValidation\*.psf)){
$fromdir = "C:\Downloads\Prevalidation\*.psf"
$fullname = gi $fromdir| select fullname
$b = $fullname[0]
$b.fullname
Copy-Item $file.fullname C:\Downloads\Validation\WIP\psaload1.csv
Get-Content C:\Downloads\Validation\WIP\psaload.csv | ForEach-Object {$_.replace("Space Planning Project","$b.fullname")} | Set-Content C:\Downloads\Validation\WIP\psaload.csv
}
но выдает ошибку: 1011 *
Get-Content : Cannot find path 'C:\Downloads\Validation\WIP\psaload.csv' because it does not exist.
At C:\cap_sps\powershell\testfilename.ps1:7 char:12
+ Get-Content <<<< C:\Downloads\Validation\WIP\psaload.csv | ForEach-Object {$_.replace("Space Planning Project","$b.fullname")} | Set-Content C:\Downloads\Validation\WIP\psaload.csv
+ CategoryInfo : ObjectNotFound: (C:\Downloads\Validation\WIP\psaload.csv:String) [Get-Content], ItemNotF
oundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
Обратите внимание, что я использую свой последний файл psaload.csv для загрузки в базу данных Oracle, и на последнем шаге моего сценария я удаляю этофайл, так что я могу запустить те же команды в цикле для остальных файлов .psf, присутствующих в вышеуказанной папке.
Любая помощь очень ценится.
Спасибо, Сандерс.