2012-06-12 50 views
3

我想從文件輸入運行mysql。我發現了以下工作:從PowerShell輸入cmd的重定向

CMD/C 'C:\ Program Files文件\ MySQL的\ MySQL的用戶-u -Ppassword數據庫名稱-f < inputfilename.sql'

的問題是, databasename($ database)和inputfilename.sql($ file)是變量,需要進行插值。我還沒有找到任何方法來使插值工作。

注意,調用表達和&將無法​​工作,因爲PowerShell不會對輸入重定向實現<。

有什麼建議嗎?

回答

-1

它看起來像你封閉在單引號整個命令回答您可能能夠使用獲取內容。變量不會插入單引號字符串中。試試這個:

cmd /c 'C:\Program Files\MySQL\mysql' -u user -pPassword $database -f < $file 
1

完全相同同樣需要爲你的。以從其他SO答案像this one例如,這裏是我寫的:

$binPath = <local MySQL bin path> 
$mySql = Join-Path $binPath "mysql" 
... 
$dosCommand = "$mySql --host=$dbHost --user=$dbUser --password=$dbPassword $dbName --verbose < ""$scriptPath""" 
cmd.exe /c $dosCommand 
+0

其實我現在修復我的代碼,並加入雙引號,從'... <$ SCRIPTPATH「''到... <」 「$ scriptPath」「」',否則當腳本路徑包含空格時會出錯。 – superjos