从批处理脚本中读取args的问题

时间:2009-02-17 13:40:41

标签: windows batch-file scripting path filenames

在Windows上,我正在尝试使用%~f1参数获取文件名。

我是通过我添加到上下文菜单中的新语音(命令)来完成此操作的。

在Windows注册表中,语音只调用打印文件名的批处理脚本, 通过这种方式:

`C:\script.bat %~f1`

但我得到了这个输出:

`C:\Documents and Settings\Administrator\Desktop\%~f1`

所以,路径还可以,但是文件名怎么样?!

连连呢?谢谢!

2 个答案:

答案 0 :(得分:2)

当它触发的上下文菜单项时,它由资源管理器(不是cmd.exe)完成,资源管理器不实现%~f1。因此,您获得了当前的结果。

您需要修改脚本以便它接收整个文件名(您可能只在注册表中放置'C:\ script.bat%1'或'C:\ script.bat')并更新您的脚本使用%~f1:

@echo first argument: %1
@echo filename only: %~f1
@notepad %~f1

祝你好运!

答案 1 :(得分:0)

尝试将整个变量括在%'s。

C:\script.bat %~f1%