.ps1: Помилка отримання вмісту "Не вдається знайти шлях" ... "


0

Тому я просто написав справді дуже короткий сценарій, який мені потрібно замінити унікальним рядком у файлі 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. І у мене не так багато часу для цього ...

Хтось із будь-якими порадами?


Чи траплялось вам змінити все своє +на -andможливо? Змініть -andна, +і ви будете корисні.
Lieven Keersmaekers

1
або ще краще, користуйтеся"C:\Users\$($env:UserName)\desktop\Script\Test.txt"
Lieven Keersmaekers

@LievenKeersmaekers Дякую багато, це елегантний спосіб вирішити проблему. Єдине останнє, що після завантаження файлу, це "статус" - "використовується". Тож у другій частині мого сценарію, де він повинен зберігати нове значення, він говорить, що файл уже використовується
arvenyon

Get-Contentпочинає надсилати вміст через конвеєр під час читання, щоб ви блокували себе. Один варіант - використовувати інший файл, інший варіант - змусити Get-Contentпрочитати весь файл, перш ніж надсилати його по конвеєру. Найпростіше - просто оточити Get-Contentдужки:(Get-Content "C:\Users\$($env:UserName)\desktop\Script\Test.txt") | ...
Lieven Keersmaekers

1
@LievenKeersmaekers Дякую багато! Це мені допомогло, і для мене це має сенс. Мені потрібно те саме ім’я файлу, тому я вирішив використовувати другий варіант: (Get-Content ("C:\Users\$($env:UserName)\desktop\Script\Test.txt")) | ... @SimonS Дякую за пораду! :)
arvenyon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.