Windows命令行下类似于MacOS的Open命令

习惯了在macOS的Terminal里使用open命令,想在windows下也找一个类似的命令。

之前不记得在哪里找到了一个shell脚本,内容如下,把文件起名为open,放到PATH里就可以。

#!/bin/sh
# open

EDITOR="exec notepad.exe"
BROWSER="/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"

if [ -d "$1" ]; then
    exec explorer.exe $(cygpath -w "$1")
elif [ -f "$1" ]; then
    path=$(cygpath --windows "$1")
    case "$1" in
    *.xml) $EDITOR "$1";;
    *.txt) $EDITOR "$1";;
    *.html) "$BROWSER" "$path";;
    file://*) "$BROWSER" "$path";;
    http://*) "$BROWSER" "$path";;
    https://*) "$BROWSER" "$path";;
    esac
else
    # TODO non-existent file/dir
    echo "non existent file: $1"
    exit 1
fi

exit 0

但这个脚本有很大局限,只能用编辑器或者浏览器打开文件。

今天找到一个开源项目neosmart/open,更为通用,会根据文件类型找对应的程序打开。


Last modified on 2022-06-08