【问题标题】:PowerShell: Open file via .bat scriptPowerShell:通过 .bat 脚本打开文件
【发布时间】:2020-04-24 06:45:35
【问题描述】:

假设我有一个具有特定扩展名的文件(例如“.abc”)。 我为具有此特殊扩展名的文件设置的默认程序是一个批处理脚本,其中包含 powershell 命令,因此当我双击该文件时,它会运行该脚本。它有效。

现在我的问题是,我能以某种方式获取我打开的 .'abc' 文件的文件路径吗?有这个命令吗?

谢谢。

【问题讨论】:

    标签: powershell batch-file


    【解决方案1】:

    在您的批处理文件中,应该可以通过参数%1 访问“.abc”文件。 默认情况下,Windows 会将您双击的文件的文件名作为参数一发送给接收程序(或批处理脚本)。

    在您的批处理文件中(靠近顶部)尝试此操作,然后选择适合您需要的内容:

    echo param1: %1
    echo param1 unquoted: %~1
    echo drive: %~d1  
    echo drive and path: %~dp1  
    echo filename and extension only: %~nx1
    set myparam=%~1
    echo myParam: %myparam%
    

    通过在 cmd.exe 命令窗口中执行 for /? 来查看 for 的帮助文档以了解“%~...”语法。 (或在这里阅读:What does %~dp0 mean, and how does it work?)

    【讨论】:

    • 最后居然用了这个:"set path=%~dp1%~nx1" thx求助!
    • 感谢您的更新! :) 如果愿意,您可以将其重写为 %~dpnx1。但这实际上应该等同于只使用%~1。但如果它有效,它就有效! :D
    • 您是否知道,当您执行set path=... 时会覆盖(隐藏)系统环境变量PATH? PATH 条目仅由目录+路径部分组成,通常不包括文件名+扩展名。
    • 我使用了一个不同的变量,我发布这个只是为了描述。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2019-02-26
    • 1970-01-01
    相关资源
    最近更新 更多