tập tin a.txt là:PowerShell: làm thế nào để đánh giá một chuỗi đọc từ một tập tin
xóa từ test_ $ suffix
$ a = get-content a.txt
$ suffix = "tableA"
làm thế nào để thao tác các biến để thiết lập nó như
xóa khỏi test_tableA
tập tin a.txt là:PowerShell: làm thế nào để đánh giá một chuỗi đọc từ một tập tin
xóa từ test_ $ suffix
$ a = get-content a.txt
$ suffix = "tableA"
làm thế nào để thao tác các biến để thiết lập nó như
xóa khỏi test_tableA
$a=get-content a.txt
$suffix="tableA"
$ExecutionContext.InvokeCommand.ExpandString($a)
Đây là một cách. Các biến trong chuỗi kép được trích dẫn ở đây được thay thế tự động. Chỉ cần chắc chắn rằng tệp đầu vào của bạn tuân theo các quy tắc PS cho các chuỗi tại đây.
function convertto-herestring {
begin {$temp_h_string = '@"' + "`n"}
process {$temp_h_string += $_ + "`n"}
end {
$temp_h_string += '"@'
iex $temp_h_string
}
}
$suffix = "tableA"
get-content testfile.txt
delete from test_$suffix
get-content testfile.txt | convertto-herestring
delete from test_tableA
Invoke-Expression là tương đương.
$strExpression = "5 + 5 -eq 10"
Invoke-Expression $strExpression
True
Xem http://technet.microsoft.com/en-us/library/ee176880.aspx để biết thêm thông tin.
Chỉ cần lưu ý rằng nếu $ a chứa chuỗi được trích dẫn (ví dụ: $ a = 'delete from "test_ $ suffix"'), bạn sẽ mất dấu ngoặc kép khi được mở rộng. – mjolinor
Điều đó đúng. Cùng đi cho các dấu hiệu $. Bạn có thể thoát chúng bằng một dấu tích '. Ngoài ra, kỹ thuật chuỗi ở đây chỉ cho phép các dòng nhận dạng PowerShell. Tôi không thể có 'Đây là văn bản' trong tệp (không có dấu ngoặc kép). Việc kích hoạt tính năng này rất hữu ích khi thực hiện các ứng dụng kiểu templating. –
Tôi không hiểu phần này: "Ngoài ra, kỹ thuật chuỗi ở đây chỉ cho phép các dòng PowerShell dễ nhận biết. Tôi không thể có 'Đây là văn bản' trong tệp (không có dấu ngoặc kép). Việc bật tính năng này hữu ích khi thực hiện các ứng dụng kiểu templating. " http://mjolinor.wordpress.com/2011/02/02/here-string-test/ – mjolinor