Тому я просто написав справді дуже короткий сценарій, який мені потрібно замінити унікальним рядком у файлі txt для всіх наших користувачів у нашій компанії.
Get-Content ("C:\Users\" -and $env:UserName -and "\desktop\Script\Test.txt") | ForEach-Object { $_ -replace "ALTERTEXT", "NEUERTEXT" } | Set-Content("C:\Users\" -and $env:UserName -and "\desktop\Script\Test.txt")
Перш за все, це спрацювало! Я тестував її кілька разів, і це завжди працювало. Після тестів я не змінив сам сценарій. Я просто працював над іншими речами. Але з сьогоднішнього дня я отримую помилку:
"Get-Content: Не вдається знайти шлях" C: \ Users \ dohuegadmin \ desktop \ script \ True ", оскільки його не існує."
Але насправді цей шлях існує ... і я маю на увазі, він спрацював!
Я дійсно довго шукав рішення і читав дійсно багато тем, але не зміг знайти жодного рішення. Можливо тому, що я насправді не займаюся сценаріями PS. І у мене не так багато часу для цього ...
Хтось із будь-якими порадами?
"C:\Users\$($env:UserName)\desktop\Script\Test.txt"
Get-Content
починає надсилати вміст через конвеєр під час читання, щоб ви блокували себе. Один варіант - використовувати інший файл, інший варіант - змусити Get-Content
прочитати весь файл, перш ніж надсилати його по конвеєру. Найпростіше - просто оточити Get-Content
дужки:(Get-Content "C:\Users\$($env:UserName)\desktop\Script\Test.txt") | ...
(Get-Content ("C:\Users\$($env:UserName)\desktop\Script\Test.txt")) | ...
@SimonS Дякую за пораду! :)
+
на-and
можливо? Змініть-and
на,+
і ви будете корисні.