我创建了一个 Windows 快捷方式,其目标如下
"C:\Windows\System32\bash.exe" php /c/script.php
(我知道我可以使用我的 Windows 版本的 php cli 来运行它,但出于好奇)
当我单击我的快捷方式时,它只会弹出一个 cmd 窗口并关闭(其中脚本需要几分钟才能运行。
有没有办法将命令通过管道传送到 Windows 上的 bash.exe?
答案1
如果这是 WSL,请使用bash.exe -c“要运行的命令”如同
C:\Windows\System32\bash.exe -c “vi ~/.bashrc”
或者
C:\Windows\System32\bash.exe -c “php /mnt/c/script.php”
答案2
首先,bash.exe 已被弃用。您应该wsl.exe
在命令行中使用。使用 Windows Insiders Builds 17063 及以上版本来实现 WSL 中的互操作性功能。对于您的情况,这两种方法都可能有效:
wsl.exe php /mnt/c/MyFiles/test.php
wsl.exe --exec php /mnt/c/MyFiles/test.php
以下是wsl.exe
使用信息:
用法:wsl.exe [参数] [选项...] [命令]
运行 Linux 二进制文件的参数:
If no command line is provided, wsl.exe launches the default shell. --exec, -e <Command> Execute the specified command without using the default Linux shell. -- Pass the remaining command line as is.
更多详细信息,请阅读WSL 与 Windows 的互操作性。