例如:我有一个文件:FILENAME.EXT,并希望在没有.EXT文件的情况下提取文件名。我希望能够使用无扩展名文件名作为只接受文件名而不包含其扩展名的命令。我有一个名为BCHECK的实用程序,它接受一个没有扩展名的文件名作为参数。使用BCHECK *。不起作用,因为所有文件都有.DAT或.IDX扩展名。这些文件不断被重命名,因此我需要为BCHECK提供新文件名,而无需手动输入它们。如何在命令行解释器和批处理文件中抑制文件扩展名?
回答
对于DOS批处理文件,您可以查看参数here。例如,以下命令显示0参数的扩展名,即批处理文件的名称。
echo %~n0
UPDATE:
下面是可以添加到一个批处理文件的例子。
FOR %%f IN (*.dat) DO bcheck -y %%~nf
此命令将与一个.dat
扩展在当前目录下的每个文件运行bcheck -y BASENAME
。该命令是一个for循环,其中包含一个参数%%f
。 %%f
参数包含文件的全名。对于每个匹配*.dat
的文件,它将在DO关键字后面运行该命令。 %%~nf
指示使用参数(%%f
)中的基准名称(~n
)。
@bobs:这在DOS 6.22中不起作用。我在C:\ DBFILES目录中有大约30个带有.DAT扩展名的文件。我有一个名为BCHECK.EXE的实用程序,它需要将其作为其参数30的基本名称。 DAT文件,例如:'bcheck -y BASENAME',那么你能给我提供一个工作的例子吗? – 2010-08-07 12:49:09
@Frank:我在答案中增加了更多信息。 – bobs 2010-08-07 15:44:47
@bobs:不,在批处理脚本中不起作用,bcheck回应:File%〜nf找不到。请记住,这是纯DOS 6.22而不是Windows cmd.exe命令解释器。 – 2010-08-07 19:39:40
这个的Unix命令是basename
。
- 1. 请解释此批处理文件命令来解压文件
- 2. 执行后重命名批处理文件扩展名
- 3. 批处理文件中的命令行?
- 4. 批处理文件 - 使用文件扩展名创建文件
- 5. 批处理文件命令
- 6. 在命令批处理文件中隐藏文件名
- 7. Windows批处理文件复制文件允许重命名文件扩展名但不复制副本
- 8. 批量重命名文件扩展名
- 9. 批处理文件解压和重命名文件
- 10. 在Windows命令(批处理文件)中重命名文件名的一部分
- 11. 变异文件扩展名的批处理文件
- 12. 批处理文件按指定的扩展名删除文件
- 13. 在批处理文件中执行复制命令
- 14. 如何在批处理文件中运行PowerShell命令
- 15. 如何在批处理文件中运行多个命令?
- 16. Windows批处理文件命令行参数中的星号(*)得到扩展
- 17. 批处理文件除扩展名外,通过扩展删除文件?
- 18. 如何使用批处理文件将批处理文件命令追加到字符串(文件名)
- 19. 通过批处理文件复制和重命名特定扩展名的文件
- 20. 批处理文件目录扩展
- 21. 移动和重命名文件,保留扩展名,但在批处理文件中包含子目录
- 22. 批量删除文件扩展批处理文件
- 23. 如何匹配命令行参数在批处理文件
- 24. 如何控制批处理文件中的输出文件名?
- 25. 批处理文件重命名文件夹中的文件
- 26. 在批处理文件(* .bat)中创建文件命令
- 27. 在windows的批处理文件中运行wget命令行
- 28. 批处理命令的文件夹中创建的文件名空txt文件
- 29. 抑制变量扩展在awk命令
- 30. 批处理命令文件窗口
删除“unix”标签,因为这似乎只是关于DOS/Windows批处理文件。 – David 2010-08-07 03:43:21
@David:我的应用程序在UNIX和DOS下运行,所以我需要知道两者。 – 2010-08-07 03:46:40
Unix上的'basename'会为你工作吗? – Gabe 2010-08-07 04:03:18