我将这个名为lxss.cmd
的有用批处理脚本添加到我的PATH:
::@ECHO OFF
@ECHO ON
set arg1=%*
"C:\Windows\System32\bash.exe" -c "%arg1%"
正在输出:
User@LANTI-DESKTOP C:\Users\User
$ lxss lsb_release -a && uname -a
User@LANTI-DESKTOP C:\Users\User
$ set arg1=lsb_release -a
User@LANTI-DESKTOP C:\Users\User
$ "C:\Windows\System32\bash.exe" -c "lsb_release -a"
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
MSYS_NT-10.0 LANTI-DESKTOP 2.6.1(0.305/5/3) 2017-01-25 00:01 x86_64 Msys
正如您所看到的,uname -a
命令从执行中离开,而是由MSYS2运行,MSYS2也出现在我的PATH中。可能&&
命令也由MSYS2处理。但如果set arg1=lsb_release -a
行也包含&& uname -a
,则这不会成为问题。
我希望实现的预期输出:
User@LANTI-DESKTOP C:\Users\User
$ "C:\Windows\System32\bash.exe" -c "lsb_release -a && uname -a"
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
Linux LANTI-DESKTOP 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
我找到%*
变量here,但看起来&&
终止了读数。有没有办法达到我想要的目的?
修改
正如阅读here Windows和Linux &&
命令基本上做同样的事情。
所以我稍微编辑了我的脚本:"C:\Windows\System32\bash.exe" -c %*
现在我使用此命令执行:lxss "lsb_release -a && uname -a"
哪种方法有效,但输入次数越少越好,看起来尽可能像linux一样。有什么想法吗?