.fichiers bat pour compiler et exécuter java stuff
J'essaie de créer deux fichiers bat. l'un est c. bat et l'autre est r. bat
C. bat contient juste:
cls
javac *.java
Qui compilera tout .les fichiers java.
Dans r. bat j'ai:
cls
java *
Il n'exécutera pas les fichiers de classe. Je pense que c'est parce que le * dans la ligne "java *" se traduit par "java Class1.classe", " java Class2.classe" et donc un moment où il devrait être "java Class1" et "java Class2" seulement. (sans les extensions) comment puis-je faire cela? Je viens de commencer à apprendre ces choses et je ne trouve nulle part la bonne réponse.
1 answers
Les boucles suivantes sur tous les fichiers .java
trouvés dans C:\java\stuff
et les exécute les uns après les autres. Le %%~nf
formate le nom des fichiers pour ne pas afficher l'extension de fichier , c'est-à-dire le nom de classe java . Si vous modifiez java %%~nf
à echo java %%~nf
, vous pouvez voir exactement ce qui se passe.
cls
for "C:\java\stuff" %%f in (*.java) do (
java %%~nf
)
Pour: Les options suivantes sont disponibles:
Variable with modifier Description
%~I Expands %I which removes any surrounding
quotation marks ("").
%~fI Expands %I to a fully qualified path name.
%~dI Expands %I to a drive letter only.
%~pI Expands %I to a path only.
%~nI Expands %I to a file name only.
%~xI Expands %I to a file extension only.
%~sI Expands path to contain short names only.
%~aI Expands %I to the file attributes of file.
%~tI Expands %I to the date and time of file.
%~zI Expands %I to the size of file.
%~$PATH:I Searches the directories listed in the PATH environment
variable and expands %I to the fully qualified name of
the first one found. If the environment variable name is
not defined or the file is not found by the search,
this modifier expands to the empty string.