【问题标题】:problem reading args from batch script从批处理脚本中读取 args 的问题
【发布时间】:2009-02-17 13:40:40
【问题描述】:

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

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

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

`C:\script.bat %~f1`

但我得到了这个输出:

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

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

建议?谢谢!

【问题讨论】:

  • 蝙蝠的内部结构会很好。

标签: windows batch-file scripting path filenames


【解决方案1】:

当它触发上下文菜单项时,它是由资源管理器(不是 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"',否则文件名中的空格也可能会搞砸.
【解决方案2】:

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

C:\script.bat %~f1%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    相关资源
    最近更新 更多