我是PowerShell的新手。我的腳本有什麼問題?它不想發出$config
的值。但是,當我用雙引號包裝該命令時,一切看起來都不錯。如何在PowerShell中執行shell命令時引用變量?
param($config, $logfolder)
# Must run log analysis in chronological order.
ls $logfolder | Sort-Object LastWriteTime | % {
perl D:\Websites\_awstats\wwwroot\cgi-bin\awstats.pl -LogFile="$($_.FullName)" -config=$config update
}
# Execute with - .\regen-logs.ps1 webgenesis "C:\inetpub\logs\LogFiles\W3SVC5"
# Returns for each file - Error: Couldn't open config file "awstats.config.conf" nor "awstats.conf" after searching in path "D:\Websites\_awstats\wwwroot\cgi-bin,/etc/awstats,/usr/local/etc/awstats,/etc,/etc/opt/awstats": No such file or directory
原來,發出和執行的東西似乎有作爲參數傳遞的「-config = $ config」。至少,這是我最好的猜測。我不知道$ _是否正常工作。
如果我在perl命令周圍加引號,就會得到我想要執行的命令。
ls $logfolder | Sort-Object LastWriteTime | % {
"perl D:\Websites\_awstats\wwwroot\cgi-bin\awstats.pl -LogFile=`"$($_.FullName)`" -config=$config update"
}
# Outputs for each log file something like - perl D:\Websites\_awstats\wwwroot\cgi-bin\awstats.pl -LogFile="C:\inetpub\logs\LogFiles\W3SVC5\u_ex110602.log" -config=webgenesis update
你是什麼意思與「當我用雙引號包裹該命令」?你能顯示工作版本嗎? – 2011-06-02 20:45:00
您收到什麼錯誤消息? – 2011-06-02 20:50:33