Command line 使用.bat脚本包装应用程序

Command line 使用.bat脚本包装应用程序,command-line,batch-file,Command Line,Batch File,我最近决定开始使用谷歌的命令行JavaScript编译器(闭包编译器)来缩小我的web应用程序中的JavaScript。不幸的是,编译器是用Java编写的,因此我必须键入命令才能使用编译器,这有点麻烦: java -jar compiler.jar --js hello.js --js_output_file hello-compiled.js 对于我来说,用.bat文件包装这个文件最简单的方法是什么?它允许我简单地键入closure hello.js hello compiled.js,同时

我最近决定开始使用谷歌的命令行JavaScript编译器(闭包编译器)来缩小我的web应用程序中的JavaScript。不幸的是,编译器是用Java编写的,因此我必须键入命令才能使用编译器,这有点麻烦:

java -jar compiler.jar --js hello.js --js_output_file hello-compiled.js

对于我来说,用.bat文件包装这个文件最简单的方法是什么?它允许我简单地键入
closure hello.js hello compiled.js
,同时还允许我使用closure的其他命令行标志,例如
--warning level
--help

<,但这将提示您输入脚本、编译的输出文件以及是否需要任何额外参数

:Start
   @echo off
   if "%1"=="" Echo Error - input and output parameters were not specified.&goto End
   if "%2"=="" Echo Error - output parameter was not specified.&goto End
   if not exist %1 Echo Error - input file does not exist.&goto End
   set infile=%1
   set outfile=%2
   set "params="
:Loop
   if "%3"=="" goto Continue
   set params=%params% %3
   shift
   goto Loop
:Continue
   java -jar compiler.jar --js %infile% --js_output_file %outfile% %params%
   set "infile="
   set "outfile="
   set "params="
:End 
如果需要更多选项,可轻松编辑

@echo off
set /p script=Script file:
set /p compiled=Compiled script:
set /p params=Enter any extra params (leave blank if none):
if defined params (
java -jar compiler.jar --js %script% --js_output_file %compiled% %params%
) else (
java -jar compiler.jar --js %script% --js_output_file %compiled%
)
echo Done
pause >nul

我不知道您希望它的自动化程度如何,但这将提示您输入脚本、编译的输出文件,以及是否需要任何额外的参数

如果需要更多选项,可轻松编辑

@echo off
set /p script=Script file:
set /p compiled=Compiled script:
set /p params=Enter any extra params (leave blank if none):
if defined params (
java -jar compiler.jar --js %script% --js_output_file %compiled% %params%
) else (
java -jar compiler.jar --js %script% --js_output_file %compiled%
)
echo Done
pause >nul

建议你考虑使用,取而代之的是“戴维为什么?”powershell有哪些帮助解决此问题的功能?实际上,是什么让你认为我没有使用powershell呢?嗯,它更像是一个命令shell,就像在Unix或Linux中一样。它有一个丰富的界面,还允许您访问.Net对象和方法。总的来说,微软世界已经从cmd和批处理文件转向powershell好几年了。我发现它更强大,更容易使用。可以说,是新旧交替。在您的情况下,您可以创建一个简单的powershell脚本来实现您的命令行,然后在powershell配置中添加一个别名,使您能够从powershell命令行调用它。您为什么认为我认为您没有使用powershell?不管你是否已经使用它,我只是建议它作为一种选择。“戴维,我现在实际上在使用Git BASH,但是我肯定会研究PixS壳。建议你考虑使用。”戴维:为什么?powershell有哪些帮助解决此问题的功能?实际上,是什么让你认为我没有使用powershell呢?嗯,它更像是一个命令shell,就像在Unix或Linux中一样。它有一个丰富的界面,还允许您访问.Net对象和方法。总的来说,微软世界已经从cmd和批处理文件转向powershell好几年了。我发现它更强大,更容易使用。可以说,是新旧交替。在您的情况下,您可以创建一个简单的powershell脚本来实现您的命令行,然后在powershell配置中添加一个别名,使您能够从powershell命令行调用它。您为什么认为我认为您没有使用powershell?不管您是否已经在使用它,我只是建议您将其作为一种替代方案。@David现在我实际上正在使用git bash,但我肯定会研究powershell。这与我要寻找的非常接近。不过,我希望能够在一行中运行该命令,而不是让脚本分别为每个参数提示我。这与我想要的非常接近。我希望能够在一行中运行该命令,而不是让脚本分别为每个参数提示我。