如何在命令行解释器和批处理文件中抑制文件扩展名?
示例:我有一个文件:FILENAME.EXT,并且想要提取不带 .EXT 的 FILENAME 我希望能够将无扩展名文件名用于仅接受不带扩展名的文件名的命令。我有一个名为 BCHECK 的实用程序,它接受不带扩展名的文件名作为其参数。使用 BCHECK *。不起作用,因为所有文件都有 .DAT 或 .IDX 扩展名。这些文件不断被重命名,因此我需要向 BCHECK 提供新文件名,而无需手动输入它们。
Example: I have a file: FILENAME.EXT and would like to extract FILENAME without the .EXT
I want to be able to use the extensionless filename for a command which only accepts filenames without its extensions. I have a utility called BCHECK which accepts as its argument a filename with no extensions. Using BCHECK *. does not work because all the files have .DAT or .IDX extensions. These files are constantly being renamed, thus I need to provide BCHECK with the new filenames without having to manually enter them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Unix 命令是
basename
。The Unix command for this is
basename
.对于 DOS 批处理文件,您可以在此处查看参数。例如,以下命令显示 0 参数的不带扩展名的文件名,这是批处理文件的名称。
更新:
这是一个可以添加到批处理文件中的示例。
此命令将为当前目录中具有
.dat
扩展名的每个文件运行bcheck -y BASENAME
。该命令是一个包含参数%%f
的for循环。%%f
参数包含文件的全名。对于每个匹配*.dat
的文件,它将运行 DO 关键字后面的命令。%%~nf
指示使用参数 (%%f
) 中的基本名称 (~n
)。For DOS batch files you can look at parameters here. For example, the following command displays the filename without extension for the 0 parameter, which is the name of the batch file.
UPDATE:
Here's an example that can be added to a batch file.
This command will run
bcheck -y BASENAME
for each file with a.dat
extension in the current directory. The command is a for loop that contains a parameter%%f
. The%%f
parameter contains the file's full name. For each file matching*.dat
, it will run the command after the DO keyword. The%%~nf
indicates to to use the basename (~n
) from the parameter (%%f
).