2009-05-01 35 views
3

完全新手簡單的PowerShell的問題 我試圖做到以下幾點 - 在當前目錄下運行如何在PowerShell中使用@字符?

sqlplus username/[email protected]_identifier_specified_in_argument @file_name 

這裏每個* .sql文件是我到目前爲止有:

$scripts = dir *.sql 
foreach($script in $scripts) { 
    write-host sqlplus username/password"@"$args "@"$script.Name 
} 

(我知道寫主機輸出到屏幕上,我只是試圖調試,現在)

然而,有什麼與PowerShell如何對待@字符和當我運行這個我總是得到東西李ke

PS C:\code\scripts> C:\utils\run_sql_scripts_on.ps1 identifier 
sqlplus username/[email protected] @ ALERTS.sql 

看到「@」後的空格嗎?是什麼賦予了?

回答

6

用倒退(`)退出@。

write-host sqlplus username/password`@$args `@$script.Name 
+0

究竟做了`和@符號做? – 2009-05-01 19:38:37

2

PowerShell Community Extensions有調試這類問題一個方便的小工具(echoargs):

5>echoargs username/password"@"$args "@"$script.Name 
Arg 0 is <username/[email protected]> 
Arg 1 is <@> 
Arg 2 is <test.txt> 

嘗試用反引號轉義:

6>echoargs "username/password`@$args" "`@$($script.Name)" 
Arg 0 is <username/[email protected]> 
Arg 1 is <@test.txt> 
相關問題