在Windows批处理脚本中获取没有扩展名的文件名

我正在尝试创build一个右键菜单命令,用YUI压缩器来压缩JavaScript文件。 我的最终目标是试图让这个在上下文菜单上运行:

java.exe -jar yuicompressor-2.4.2.jar -o <filename>.min.js <filename>.js 

我知道我可以使用variables%1引用正在打开的文件名。 我不知道如何得到这个命令成batch file的语法,并没有能够find任何答案在线。

更新:
杰里米的回答(+评论)工作。 对于任何绊脚石的人来说,这是我必须做的:

在为JavaScript文件创build的操作中,我将其用作命令:

 minify.bat "%1" 

其中调用我的批处理脚本,如下所示:

 java.exe -jar yuicompressor-2.4.2.jar -o "%~dpn1.min.js" %1 

对于批处理脚本,请记住,上面的代码假定java.exe和yuicompressor的目录都添加到PATHvariables中。 如果不将这些添加到path中,则必须使用文件的完整path。

序列%~dpn用来得到:

  1. %~d – 驱动器
  2. %~p – path
  3. %~n – 文件名

更改操作以调用batch file:

 RunCompressor.bat "%1" 

在RunCompressor.bat中使用%~n1 〜n1来获取没有扩展名的文件名:

 start javaw.exe -jar yuicompressor-2.4.2.jar -o "%~n1.min.js" "%1" 

有用的文章

启动javaw.exe运行batch file时closures命令窗口。

 echo path of this file name is: %~dp0 echo file name of this file without extension is:%~n0 echo file extention of this file is:%~x0 echo The file name of this file is: %~nx0 

编写自己的类,确定要发送到YUI压缩器的输出文件名。

 java.exe -cp yuicompressor-2.4.2.jar MyClass "%1"