【发布时间】:2020-04-24 06:45:35
【问题描述】:
假设我有一个具有特定扩展名的文件(例如“.abc”)。 我为具有此特殊扩展名的文件设置的默认程序是一个批处理脚本,其中包含 powershell 命令,因此当我双击该文件时,它会运行该脚本。它有效。
现在我的问题是,我能以某种方式获取我打开的 .'abc' 文件的文件路径吗?有这个命令吗?
谢谢。
【问题讨论】:
标签: powershell batch-file
假设我有一个具有特定扩展名的文件(例如“.abc”)。 我为具有此特殊扩展名的文件设置的默认程序是一个批处理脚本,其中包含 powershell 命令,因此当我双击该文件时,它会运行该脚本。它有效。
现在我的问题是,我能以某种方式获取我打开的 .'abc' 文件的文件路径吗?有这个命令吗?
谢谢。
【问题讨论】:
标签: powershell batch-file
在您的批处理文件中,应该可以通过参数%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?)
【讨论】:
%~dpnx1。但这实际上应该等同于只使用%~1。但如果它有效,它就有效! :D
set path=... 时会覆盖(隐藏)系统环境变量PATH? PATH 条目仅由目录+路径部分组成,通常不包括文件名+扩展名。