Vì vậy, tôi chỉ viết một tập lệnh thực sự ngắn, mà tôi cần thay thế một chuỗi duy nhất trong tệp txt cho tất cả người dùng trong công ty của chúng tôi.
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")
Đầu tiên, nó đã làm việc! Tôi đã thử nghiệm nó một vài lần, và nó luôn hoạt động. Sau các thử nghiệm, tôi đã không thay đổi kịch bản. Tôi chỉ làm việc trên các công cụ khác. Nhưng kể từ hôm nay, tôi gặp lỗi:
.
Nhưng thực ra con đường này không tồn tại ... và ý tôi là, nó đã hoạt động!
Tôi thực sự đã tìm kiếm một giải pháp trong một thời gian dài và đọc rất nhiều chủ đề, nhưng không thể tìm thấy bất kỳ giải pháp nào. Có lẽ bởi vì tôi không thực sự vào kịch bản ps. Và tôi không có nhiều thời gian cho việc này ...
Bất cứ ai có lời khuyên?
hoặc thậm chí tốt hơn, sử dụng
—
Lieven Keersmaekers
"C:\Users\$($env:UserName)\desktop\Script\Test.txt"
@LievenKeermaekers Cảm ơn rất nhiều, đó là một cách thanh lịch để giải quyết vấn đề. Điều cuối cùng bây giờ là, sau khi nó tải Tệp, "trạng thái" là "đang sử dụng". Vì vậy, trong phần thứ hai của tập lệnh của tôi, nơi nó sẽ lưu giá trị mới, nó nói rằng tệp đã được sử dụng
—
arvenyon
Get-Content
bắt đầu gửi nội dung qua đường ống trong khi đọc để bạn tự chặn. Một tùy chọn là sử dụng tệp khác, tùy chọn khác là bắt buộc Get-Content
để đọc toàn bộ tập tin trước khi gửi nó qua đường ống dẫn. Dễ nhất là chỉ bao quanh Get-Content
với dấu ngoặc đơn: (Get-Content "C:\Users\$($env:UserName)\desktop\Script\Test.txt") | ...
@LievenKeermaekers Cảm ơn rất nhiều! Điều này đã giúp tôi, và nó có ý nghĩa với tôi. Tôi cần cùng tên tệp, vì vậy tôi quyết định sử dụng tùy chọn thứ hai:
—
arvenyon
(Get-Content ("C:\Users\$($env:UserName)\desktop\Script\Test.txt")) | ...
@SimonS Cảm ơn lời khuyên! :)
+
đến-and
có lẽ? Thay đổi-and
đến+
và bạn tốt để đi.