La plupart des systèmes fournissent une open
commande (alternativement appelée start
, cygstart
, xdg-open
etc.) qui ouvre un fichier dans l'application « par défaut » de l'environnement de bureau, quel qu'il soit.
Par exemple, de Powershell quand j'entre:
PS> start form.pdf
Le document s'ouvre dans Edge.
Est-ce que Bash sur Ubuntu sur Windows peut le faire?
windows-10
windows-subsystem-for-linux
Cheezmeister
la source
la source
... | sed 's/\/mnt\/\(.\)/\1:/1' | xargs cmd.exe /C start
cmd.exe /c start "%localappdata%/lxss/$(readlink -f $some_relative_path)"
maintenant nous cuisinons avec le feu!Cela dépend si vous voulez A) lancer un programme Linux dans WSL ou B) vous voulez lancer un programme Windows à partir d'une invite du shell bash.
Si B), alors oui si vous installez cygwin / bash. Par exemple, installez git pour Windows et vous avez un système fonctionnant sous Windows avec bash. Ensuite, vous pouvez simplement lancer start, en fait, il est inclus en tant que script:
Si A), cela devient beaucoup plus difficile, surtout si vous voulez lancer un programme Linux pour afficher un fichier .pdf dans une fenêtre graphique. Notez que Windows sait associer une application par défaut pour ouvrir un fichier pdf, mais WSL ne dispose pas des informations. Ainsi, même si vous obteniez un bureau fonctionnant sous WSL, vous auriez besoin d'associer une application graphique Linux pour ouvrir le fichier PDF.
Remarque pour clarifier, dans WSL, vous exécutez des exécutables linux et non des exécutables Windows:
la source
J'ai constaté que explorer.exe fonctionne assez bien pour trouver le chemin résolu correct (même des répertoires de réseau montés) et pour lancer l'outil par défaut. Le seul problème est que vous ne pouvez pas avoir de chemins dans le nom du fichier. Vous devez donc créer une petite fonction / script d'aide pour lancer correctement l'explorateur, par exemple:
la source
Comme Martijn l'a noté, c'est la manière correcte d'exécuter / ouvrir un fichier / une application Windows.
J'ai trouvé très utile de travailler cela dans un script bash que je garde dans un dossier qui se trouve dans mon chemin système. Je le nomme
start
et faischmod 0744
au fichier pour le rendre exécutable. Le$*
signifie qu'il passera tous les arguments de ligne de commande que vous avez fournies au scriptcmd.exe
.Avec cette commande dans mon chemin système, je peux commander des commandes comme celle-ci sous Linux s’ouvrant sous Windows:
start FileXYZ.pdf
// Ouvre le PDF dans la visionneuse PDF attribuée par défaut sous Windowsstart explorer .
// Ouvre le dossier WSL actuel dans l'explorateur Windows.start MyApp.exe
// lance l'application Windowsla source
L' interface Windows-Linux de WSL fonctionnant en octobre , j'imagine que vous devriez pouvoir utiliser Windows
start
directement dans Bash, tout comme dans Powershell.Il suffit d'appeler avec
start.exe
la source
zsh
. Est-ce que ça marche pour toi?start.exe