使用批处理脚本仅从右键单击上下文菜单中运行所选文件?

问题描述

简单的批处理文件,例如

for %%i in (*.txt) do (
    start notepad.exe "%%~ni.txt"
)

通过右键单击上下文菜单运行它,就像回答here

只要目录中只有一个.txt文件,它就可以正常工作。如果有多个.txt文件,则会打开所有文件

如何仅打开一个右键单击的文件

解决方法

我不确定为什么只使用%%~ni.txt时为什么要使用%%~i,无论如何,这应该只使用输入中的第一项:

@echo off
for %%i in ("%~1") do (
    start notepad.exe "%%~i"
)

不过,更简单的方法是用这一行替换上面的所有内容:

@start "" notepad.exe "%~1"