8

Большинство систем предоставляют команду open (также известную как start , cygstart , xdg xdg-open и т.д.), Которая открывает файл в приложении "по умолчанию" в среде рабочего стола, что бы это ни было.

Например, из Powershell, когда я вхожу:

PS> start form.pdf

Документ открывается в Edge.

Может ли Bash-on-Ubuntu-on-Windows сделать это?

3 ответа3

16

Так как взаимодействие Windows Linux начало работать, теперь вы можете позвонить:

cmd.exe /C start <file>
2

Это зависит от того, хотите ли вы A) запустить программу linux внутри WSL или B) вы хотите запустить программу windows из командной строки bash.

Если Б), то да, если вы устанавливаете Cygwin / Bash. Например, установите Git для Windows, и у вас есть система, работающая под Windows с Bash. Затем вы можете просто запустить start, на самом деле он включен как скрипт:

$ cat /usr/bin/start
#!/usr/bin/env bash
# Copyright (C) 2014, Alexey Pavlov
#   mailto:alexpux@gmail.com
# This file is part of Minimal SYStem version 2.
#   https://sourceforge.net/p/msys2/wiki/MSYS2%20installation/
# File: start

cmd //c start "${@//&/^&}"

Если A), то становится намного сложнее, особенно если вы хотите запустить программу linux для отображения .pdf в окне GUI. Обратите внимание, что Windows знает, как связать приложение по умолчанию для открытия PDF-файла, но WSL не имеет этой информации. Поэтому, даже если у вас есть рабочий стол, работающий под WSL, вам нужно будет связать приложение Linux с графическим интерфейсом, чтобы открыть PDF-файл.

Обратите внимание, что в WSL вы выполняете исполняемые файлы Linux, а не Windows:

(WSL):~# file /bin/gzip
/bin/gzip: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=68cc3c090405cf6d40e97d2ff58085fd26940602, stripped

(WSL):~# file /mnt/c/Program\ Files/Internet\ Explorer/iexplore.exe
 /mnt/c/Program Files/Internet Explorer/iexplore.exe: PE32+ executable (GUI) x86-64, for MS Windows

(WSL):~# /mnt/c/Program\ Files/Internet\ Explorer/iexplore.exe
 bash: /mnt/c/Program Files/Internet Explorer/iexplore.exe: cannot execute binary file: Exec format error
-2

WSL начал совместную работу с Windows-Linux в октябре, поэтому я полагаю, что вы сможете использовать start Windows непосредственно в Bash, как в Powershell.
Просто позвоните с помощью start.exe

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .