2013-03-25 80 views
2

我試圖運行多個Perl的在PowerShell中的命令行命令在Windows 8在Windows 8 PowerShell ISE中運行草莓的Perl

這工作

perl -e "print 'Joe'"; 

此打印:

Joe 

這不起作用

perl -e "my $string = 'Joe'; print $string;" 

這給了我一個錯誤

perl : syntax error at -e line 1, near "my =" 
At line:1 char:1 
+ perl -e "my $string = 'Joe'; print $string;" 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : NotSpecified: (syntax error at -e line 1, near "my =":String) [], RemoteException 
+ FullyQualifiedErrorId : NativeCommandError 
Execution of -e aborted due to compilation errors. 

有人能指出明顯的錯誤,我很想念?謝謝。我通常在UNIX上執行此操作,但使用返回刻度。作爲包裝而不是雙引號。

+0

我不知道PowerShell,但它看起來變量'$ string'插入到'-e'代碼*之前*它作爲參數傳遞給Perl→更改分隔符。 – amon 2013-03-25 21:10:30

回答

8

試試這個,但我不能測試它

perl -e 'my $string = ''Joe''; print $string;' 

在PowerShell中$string是一個變量,而在雙引號變量與賦值擴大。用單引號表示文字。 爲了逃避'在單引號加倍它作爲''

或嘗試:

perl -e "my `$string = 'Joe'; print `$string;" 

的`在PowerShell中的轉義字符。

+0

兩者都有效。謝謝:) – 2013-03-25 21:16:27

+0

@ wall-nut很高興爲了幫助! – 2013-03-25 21:16:52