【发布时间】:2012-11-15 17:44:52
【问题描述】:
以下是一个程序应该在 VS 中作为预构建事件运行。它可以直接从命令行工作,但不能在 VS 中工作。
@echo off
:: Direct From cmd.exe
:: "G:Google Drive\GitHub\toolset\Site\pre-build.bat" Release "G:Google Drive\GitHub\toolset\Site\Web"
:: From Visual Studio Pre-Build Event
:: "$(SolutionDir)pre-build.bat" $(ConfigurationName) "$(ProjectDir)"
if %1==Release (
if exist %2 (
set location=%2
set dotlessVersion=v1.3.1.0
:: Compress Less Files
for /r %location% %%a in (*.less) do (
"%~dp0..\SharedLibs\dotless\%dotlessVersion%\dotless.Compiler.exe" -m -r "%%a" "%%~da%%~pa%%~na.min.css"
)
:: Minify js Files
for /r %location% %%a in (*.closure.js) do (
set newFilename=%%a
call java -jar "%~dp0..\SharedLibs\Closure Compiler\compiler.jar" --js "%%a" --js_output_file "%%newFilename:.closure.js=.min.js%%"
)
)
)
【问题讨论】:
-
为什么不起作用?发生什么了?您在输出窗口中看到了什么?
-
输出窗口中不显示任何内容。如果我在
set location=%2之后添加echo Value: %location%,则输出为Value:。 cmd.exe 将变量输出到 echo 中。
标签: visual-studio batch-file cmd pre-build-event