Использование YUI Compressor с помощью PowerShell и запись синтаксических ошибок в файл .txt в виде сценария предварительной сборки Visual Studios - PullRequest
0 голосов
/ 10 ноября 2011

хорошо, так что в ореховой оболочке у меня есть PowerShell, который управляет YUI Compressor, чтобы выполнить JS-сжатие в рамках предварительной сборки для визуальных студий.хотя синтаксические ошибки могут быть очень редкими, я хотел бы знать об этих ошибках, если они возникают, и с помощью скрипта, который я сейчас запускаю, я не смог заставить Visual Studio отображать ошибки в журнале сборки илипусть сценарий powershell записывает любые ошибки, которые YUI выдает в файл .txt для последующего просмотра.(последний будет предпочтительным)

Write-Host "Работа в $ args"

attrib -R $ args *. * / s

Get-ChildItem $ args -include * .js -recurse -force |% {java -jar C: \ Tools \ yuicompressor-2.4.6 \ build \ yuicompressor-2.4.6.jar ($ .fullname) -o ($ .fullname) --type js --nomunge}

Write-Host в сценарии PowerShell позволяет мне затем создать .txt с выводом, используя следующий cmd в Visual Studios:

powershell.exe -file«$ (ProjectDir) .... \ PowerScripts \ Pre_Build_Public.ps1» >> «C: \ Tools \ Pre_Build_Report.txt» «Сценарии $ (ProjectDir)»

будет работать с любыми ошибкамиа также от YUI?

Если вам нужно больше разъяснений, пожалуйста, дайте мне знать.Я хочу сделать это как можно проще, и спасибо, что нашли время, чтобы просмотреть это.

1 Ответ

0 голосов
/ 09 декабря 2011

Вы можете перенаправить поток stderr с помощью оператора 2>&1:

 powershell.exe -file "$(ProjectDir)....\PowerScripts\Pre_Build_Public.ps1" 2>&1 >> "C:\Tools\Pre_Build_Report.txt" "$(ProjectDir)Scripts"

Однако я считаю, что внутренняя обработка ошибок PowerShell не записывает в stderr.Вам нужно будет сделать это вручную.В конце вашего скрипта Pre_Build_Public.ps1 я бы сделал что-то вроде:

 foreach( $err in $error )
 {
      Write-Output $err
 }

Это будет отправлять каждую ошибку на стандартный вывод.

Похоже, что PowerShell v3 будет поддерживать перенаправление внутреннего PowerShell.поток ошибок.

...