__Remarque: cet article a été confirmé dans l'environnement suivant. __
Supposons que vous ayez helloworld.bat
dans un dossier appelé C: \ sample
. Le contenu est le suivant.
helloworld.bat
@echo off
echo Hello World 01
echo Hello World 02
echo Hello World 03
Vous trouverez ci-dessous un exemple d'exécution de ce helloworld.bat
depuis Java.
//Générer ProcessBuilder
// helloworld.Connectez stdin et stderr de bat aux stdin et stderr du processus parent.
var processBuilder = new ProcessBuilder("C:\\sample\\helloworld.bat");
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
//Génération de processus
// helloworld.Exécutez bat en tant que processus enfant et arrêtez le thread parent jusqu'à la fin de l'exécution du processus.
var process = processBuilder.start();
process.waitFor();
Lorsque vous faites cela, vous devriez voir quelque chose comme ce qui suit dans la sortie standard de Java:
Hello World 01
Hello World 02
Hello World 03
__ Personnellement, le point "addicted" est l'extension du fichier batch. L'extension du fichier que vous souhaitez exécuter doit être bat ou cmd. __
Dans le monde des scripts dits shell, il n'y a aucune spécification pour l'extension du fichier dans lequel le script est écrit. Je pense qu'il est habituel d'utiliser sh
, mais tant que vous avez l'autorisation d'exécution, vous pouvez exécuter txt
ou html
, et il n'y a pas de problème même s'il n'y a pas d'extension.
D'autre part, dans le monde Windows, les extensions sont utilisées pour déterminer si un fichier est un fichier batch. En d'autres termes, si l'extension est bat ou cmd, ce fichier est considéré comme un fichier batch exécutable.
Ce à quoi j'étais accro était "J'ai essayé d'exécuter un fichier sans extension bat ni cmd avec ProcessBuider
ou Process
et cela n'a pas fonctionné ". Je suis un soi-disant développeur d'applications ouvertes. Dans ce monde (c'est-à-dire Linux et Unix), si l'autorisation d'exécution est donnée correctement, elle peut être exécutée quelle que soit l'extension, il est donc difficile de penser qu'il est nécessaire de spécifier une extension spécifique. Je n'ai pas (´ ・ ω ・ `)
Recommended Posts