Написал простенький скрипт для замены текста во всех файлах определенной директории
$files = Get-ChildItem -Recurse | Where-Object -FilterScript {$_.Extension -match "^\.(txt|htm)$"}
foreach ($file in $files)
{
Write-Host "Замена в файле:" $file.FullName
$fileContent = Get-Content -Path $file.FullName
$fileContent = $fileContent -replace "a", "x"
Set-Content -Path $file.FullName -Value $fileContent
}
Работает. Но если я задаю жестко пусть до директории в которой будет производится замена, почему то выводится ошибка.
$files = Get-ChildItem -Path "C:\Users\raffl\bash\MultipleReplace\dir1" -Recurse | Where-Object -FilterScript {$_.Extension -match "^\.(txt|htm)$"}
foreach ($file in $files)
{
Write-Host "Замена в файле:" $file.FullName
$fileContent = Get-Content -Path $file.FullName
$fileContent = $fileContent -replace "a", "x"
Set-Content -Path $file.FullName -Value $fileContent
}
Get-ChildItem : Не удалось найти диск. Диск с именем "C" не существует.
строка:1 знак:10
+ $files = Get-ChildItem -Path "C:\Users\raffl\bash\MultipleReplace\di ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:String) [Get-ChildItem], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Не подскажите в чем может быть дело? Запускаю из PowerShell ISE