Tệp cấu hình ban đầu của tôi (web1.config) không có dòng thừa và khi được xem trong notepad (hiển thị tất cả ký tự) trông như sau:Thiết lập nội dung nối thêm dòng mới (ngắt dòng, CRLF) ở cuối tệp của tôi
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />
</system.web>
<appSettings>
<add key="myConnectionString" value="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</appSettings>
</configuration>
Bây giờ, tôi cần phải áp dụng các lệnh để thay đổi tên cơ sở dữ liệu của tôi để cái gì khác mà trông giống như:
Move-Item "web1.config" "webtemp.config"
Get-Content "webtemp.config" | ForEach-Object {$_ -replace "database=myDb;", "database=newDb;"} |Set-Content "web1.config" -Force
Remove-Item "webtemp.config"
Write-Output('Settings Changed')
Vì vậy, các tập tin mới (web1.config) được tạo ra trông s như:
Thông báo dòng phụ thêm vào cuối của tập tin (mà là hoàn toàn không cần thiết) Tôi đã thử tất cả các lựa chọn khác như: - sử dụng ra-file api - sử dụng. phương pháp IO mạng System.IO.StreamWriter - sử dụng cờ -nonewline (nó chuyển đổi tất cả 10 dòng thành một dòng) - sử dụng các tùy chọn mã hóa khác nhau - đã thử thay thế \ r \ n thành \ r (không hoạt động trở lại) nội dung tạo ra crlf luôn)
Tôi đang sử dụng PowerShell phiên bản 5.1.
Cho phép tôi cung cấp cho bạn lời khuyên chuẩn cho người mới: Nếu câu trả lời giải quyết được vấn đề của bạn, vui lòng chấp nhận câu trả lời bằng cách nhấp vào dấu kiểm lớn (✓) bên cạnh nó và tùy ý bỏ phiếu. điểm danh tiếng hơn). Nếu bạn thấy các câu trả lời khác hữu ích, hãy bỏ phiếu cho họ. Chấp nhận (bạn sẽ nhận được 2 điểm danh tiếng) và bỏ phiếu ủng hộ độc giả trong tương lai. Vui lòng xem [bài viết có liên quan trong trung tâm trợ giúp] (http://stackoverflow.com/help/someone-answers). Nếu câu hỏi của bạn chưa được trả lời đầy đủ, vui lòng cung cấp phản hồi hoặc [tự trả lời] (http://stackoverflow.com/help/self-answer). – mklement0