0

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

我正在通过添加到上下文菜单中的新声音(命令)来执行此操作。

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

`C:\script.bat %~f1`

但我得到这个输出:

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

所以,路径没问题,但是文件名呢?!

建议?谢谢!

4

2 回答 2

2

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

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

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

祝你好运!

于 2009-02-17T13:59:42.307 回答
0

尝试将整个变量包含在 %'s 中。

C:\script.bat %~f1%

于 2009-02-17T13:52:02.093 回答