在windows上,我试图使用%〜f1参数获取文件名。从批处理脚本中读取参数的问题
我正在从我添加到上下文菜单的新语音(命令)中执行此操作。
在Windows注册表中,语音只是调用批处理脚本,通过这种方式打印文件名, :
`C:\script.bat %~f1`
,但我得到这样的输出:
`C:\Documents and Settings\Administrator\Desktop\%~f1`
如此,路径没问题,但是文件名呢?!
对此提出建议?谢谢!
在windows上,我试图使用%〜f1参数获取文件名。从批处理脚本中读取参数的问题
我正在从我添加到上下文菜单的新语音(命令)中执行此操作。
在Windows注册表中,语音只是调用批处理脚本,通过这种方式打印文件名, :
`C:\script.bat %~f1`
,但我得到这样的输出:
`C:\Documents and Settings\Administrator\Desktop\%~f1`
如此,路径没问题,但是文件名呢?!
对此提出建议?谢谢!
当触发的上下文菜单项,就这样通过浏览器(不cmd.exe的)和浏览器做不执行%〜F1。因此你得到当前的结果。
你需要的是修改你的脚本,以便它接收整个文件名(你可能只在注册表中放置'C:\ script.bat%1'或'C:\ script.bat')并更新你的脚本使用%〜f1:
@echo first argument: %1
@echo filename only: %~f1
@notepad %~f1
祝你好运!
如果你直接调用它,你可能会想把参数用引号括起来,例如'C:\ script.bat“%1”',否则文件名中的空格可能会混淆。 – 2009-02-17 14:19:21
尝试将整个变量括在%的位置。
C:\script.bat %~f1%
蝙蝠的内部会很好。 – 2009-02-17 13:58:23