.vbs 脚本不会运行 gnome-terminal,除非我先在终端中运行该程序

.vbs 脚本不会运行 gnome-terminal,除非我先在终端中运行该程序

我有这个 vbs 脚本,我一直用它来gnome-terminal从我的 Windows 10 桌面运行。它执行以下命令,但strArgs不显示正在执行命令的终端窗口。

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "wsl 'DISPLAY=:0 gnome-terminal"
oShell.Run strArgs, 0, false

但是,只有我DISPLAY=:0 gnome-terminal先在 vanilla wsl 终端中执行该脚本,该脚本才会起作用。我不确定在我的进程中启动了什么才能使该脚本起作用,但我真的不想每次重启电脑时都这样做。

答案1

read显然,在后面添加命令gnome-terminal可以使其工作。现在,我不需要每次重新启动时都在命令窗口中输入命令来使桌面快捷方式工作。

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "wsl 'DISPLAY=:0 gnome-terminal;read"
oShell.Run strArgs, 0, false

答案2

问题是需要先启动 DBus。这个批处理脚本对我有用,还可以检查以确保 VcXsrv 正在运行:

tasklist /FI "IMAGENAME eq vcxsrv.exe" 2>NUL | find /I /N "vcxsrv.exe">NUL
if "%ERRORLEVEL%"=="0" echo X server is running
if not "%ERRORLEVEL%"=="0" start "" "C:\Program Files\VcXsrv\vcxsrv.exe" :0 -ac -terminate -lesspointer -multiwindow -clipboard -dpi auto
ubuntu run "sh -ic 'if [ -z \"$(pidof dbus-launch)\" ]; then export DISPLAY=127.0.0.1:0.0; dbus-launch --exit-with-x11; fi;'"
ubuntu run "DISPLAY=:0 gnome-terminal --working-directory=/home/kevin; sleep 1"

ubuntu当然,如果您使用其他东西,请编辑目录并更改命令。

相关内容