返回

如何在 Windows 批处理脚本中获取不带扩展名的文件名?

windows

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

简介

自动化任务是让生活更轻松的一个好方法,而 Windows 批处理脚本可以轻松实现这一目标。然而,当涉及到处理文件名时,有时会遇到一些挑战。本文将探讨如何在一个 Windows 批处理脚本中获取不带扩展名的文件名,并提供详细的解决方案。

问题

想象一下这样的场景:你正在为 JavaScript 文件创建右键单击上下文菜单命令,并希望使用 YUI 压缩器对其进行压缩。你遇到的问题是:如何将以下命令放入批处理文件语法中:

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

你了解到可以使用变量 %1 来引用正在打开的文件名,但你无法弄清楚如何将此命令放入批处理文件语法中,并且在网上也没有找到任何答案。

解决方案

感谢热心网友 Jeremy 提供的解决方案,可以有效解决此问题。以下是操作步骤:

1. 在动作中引用批处理脚本

在为 JavaScript 文件创建的动作中,将命令更改为:

minify.bat "%1"

这会调用批处理脚本,如下所示:

2. 使用批处理脚本获取不带扩展名的文件名

java.exe -jar yuicompressor-2.4.2.jar -o "%~dpn1.min.js" %1
  • %~d - 驱动器
  • %~p - 路径
  • %~n - 文件名

结论

本文提供了获取不带扩展名的文件名的详细步骤,解决了你在 Windows 批处理脚本中遇到的问题。通过将问题分解成更小的步骤,并使用变量和参数,可以轻松编写脚本来处理复杂的文件操作任务。随着你技能的提升,你将能够编写更强大的批处理脚本,简化任务并提高工作效率。

常见问题解答

1. 如何使用完整的路径而不是变量?

如果你未将 java.exeyuicompressor 的目录添加到路径中,则需要使用文件的完整路径。将命令更改为:

"C:\Path\To\java.exe" -jar "C:\Path\To\yuicompressor-2.4.2.jar" -o "%~dpn1.min.js" %1

2. 如果文件名包含空格怎么办?

批处理脚本会将空格视为参数分隔符。要解决此问题,请用引号将文件名括起来。将命令更改为:

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

3. 如何获取文件的扩展名?

要获取文件的扩展名,请使用 %~x 变量。将命令更改为:

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

4. 如何获取不带路径的文件名?

要获取不带路径的文件名,请使用 %~n 变量。将命令更改为:

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

5. 如何在批处理脚本中执行多行命令?

要在批处理脚本中执行多行命令,请使用以下语法:

(
    command1
    command2
    ...
)