在Windows上,我正在尝试使用%~f1参数获取文件名。
我是通过我添加到上下文菜单中的新语音(命令)来完成此操作的。
在Windows注册表中,语音只调用打印文件名的批处理脚本, 通过这种方式:
`C:\script.bat %~f1`
但我得到了这个输出:
`C:\Documents and Settings\Administrator\Desktop\%~f1`
所以,路径还可以,但是文件名怎么样?!
连连呢?谢谢!
答案 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%