我有一行Powershell命令,從命令行完美地工作。簡單的Powershell命令掛起後生成事件中的Visual Studio 2010
但是,當我將它添加到我的VS2010項目的構建後命令中時,它會運行,但只會掛起Visual Studio。就好像Visual Studio只是坐在那裏等待Powershell命令完成一樣,即命令行只需按Enter鍵關閉窗口就可以了。因爲CPU使用率已經很低了。
我是否必須做任何特殊的事情才能讓正常的Powershell命令在VS2010後期編譯窗口中快速運行?
的命令是:
[io.file]::WriteAllText('C:\test.js', ((gc C:\test.js) -replace 'HELLO','GOODBYE' -join "`r`n"))
所以在VS,我添加前綴通過PowerShell來啓動它,就像這樣:
Powershell [io.file]::WriteAllText('C:\test.js', ((gc C:\test.js) -replace 'HELLO','GOODBYE' -join "`r`n"))
更新
這結束了做訣竅。感謝大家的不懈努力。
Powershell -command "[io.file]::WriteAllText('C:\test.js', ((gc C:\.js) -replace 'HELLO','GOODBYE' -join \"`r`n\"))"
感謝您的幫助。如果我的「命令」實際上已經有雙引號,那該怎麼辦? – Aaron 2011-02-25 12:01:38
@Aaron:'cmd'確實有一個轉義字符('^'IIRC),或者如果你加引號('「」')? Cmd的文檔很難找到,所以你可能需要一些努力。另一種選擇是將PSH腳本放入一個文件中(作爲「無內置」添加到項目中)並使用命令行執行該文件。 – Richard 2011-02-25 12:08:20
好吧,這是它。這完全適用。我還能夠使用分號將4個命令鏈接在一起,以便我可以從VS中的一行中全部調用它們。再次感謝: Powershell -command「[io.file] :: WriteAllText('C:\ test.js',((gc C:\ .js)--replace'HELLO','GOODBYE'-join \」' ('c:\ test.js',((gc C:\ test.js)''''')替換'HELLO','GOODBYE' - 加入\「' ('c:\ test.js',((gc C:\ test.js)''''')替換'HELLO','GOODBYE' - 加入\「' ('c:\ test.js',((gc C:\ test.js)''''')替換'HELLO','GOODBYE' - 加入\「' r'n \「))」 – Aaron 2011-02-25 12:43:52