Commande batch convertie en java [Résolu/Fermé]

Signaler
-
Messages postés
15633
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
28 février 2021
-
Bonjour,


Voila, je souhaiterais convertir des commandes batch en java, par exemple:

SYSTEMINFO

echo

pause<nul

@echo off

title

:main

set mainput=0

chcp 65001 > nul

etc....



sauriez vous comment faire cela SVP ?

merci




2 réponses

Messages postés
16258
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
28 février 2021
2 799
Bonjour,

Et qu'est-ce que c'est censé faire (pour ceux qui connaissent pas Batch) ?
Messages postés
15633
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
28 février 2021
667 > N
C'est exactement ce que je te dis. Tu cites C# et bien en C#, tu peux très bien exécuter
tel netstat -an
, ça va ouvrir cmd (donc exécuter cmd.exe) et écrire la commande dedans.
Comme tu n'as pas le droit de lancer cmd, ça ne répondra pas à ton problème.
La bonne démarche est de chercher à quoi sert cette commande, et s'il existe un moyen de le faire en C# sans cmd.

Pour Java, je ne prononcerai pas c'est un langage que je connais très mal.
Messages postés
16258
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
28 février 2021
2 799 > N
Ce qu'il serait bien, et pour en revenir aux questions de départ, ce serait de savoir exactement quels résultats tu veux, parce que tu nous cites des "exemples" de commandes, mais ce n'est pas parce que tu sauras faire une commande que tu sauras faire les autres, un "traducteur" universel qui reproduira n'importe quelle commande, tout pareil mais en différent, c'est illusoire...

Après Java, C# ou un autre, de toute façon si c'est des informations système, d'une manière ou d'une autre il faudra interroger le système pour obtenir l'information, alors ce sera peut-être caché derrière un langage de programmation (au travers de DLL par exemple) mais au final ça reste des commandes système.
Bonjour,


ce que je souhaiterais, se serait lancer une commande DOS qui va simplement appleler l'executable DOS

en fait je veux appeler des ccommandes systeme sans ouvrir cmd.exe mais simplement systeminfo.exe par exemple grace à la commande SYSTEMINFO qui ouvrira dirrectemnt le comptenu de systeinfo

esse-possible SVP ?
Bonjour, je vais tenter de poser cette qustion dans le forum du language c#

merci pour votre aide
Messages postés
15633
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
28 février 2021
667 > N
je vais tenter de poser cette qustion dans le forum du language c#
pour C# je t'ai déjà répondu https://forums.commentcamarche.net/forum/affich-34997848-commande-batch-convertie-en-java#9
donc pour taper une commande dos il me suffit de tapper tel systeminfo par exemple pour éxecuter la commande?


si je fais cela, il vas m'ouvrir cmd puis systeminfo.exe ou dirrectement systeminfo dans le script écrit ?

Merci
Oui c'est exactement ce que je pensais mais bon je pensais que vous pourriez m'aider
(en en particulier aux personnes comme vous qui répondaient à mes messages)

Aussi:

"Et puis l'analogie du tractopelle, je l'ai posté 1h avant que tu parles de shell..."

non, j'ai bien vérifier, j'ai poser la question à 15h44 et tu m'a répondu à 16h41...

Cordialement
Messages postés
15633
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
28 février 2021
667 > N
Ha oui .
Il n'empêche qu'à un moment tu as parlé de telenet, cette commande je sais qu'elle concerne une connexion tcp. Il y'a une classe en C# qui permet de faire du tcp, sans appeler telenet et donc sans cmd.
Il y a fort à parier qu'une telle classe existe aussi en Java.

Et il en va de même pour une bonne partie des commandes batch.
Donc, et pour la dernière fois, arrête de te demande comment exécuter telle ou telle commande dans un autre langage, mais définit à quoi sert le script. Ensuite cherche comment répondre au même besoin dans le langage que tu auras choisi.
Messages postés
16258
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
28 février 2021
2 799 >
Messages postés
15633
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
28 février 2021

"Il y a fort à parier qu'une telle classe existe aussi en Java."
Evidemment, mais le programme Java délègue à la JVM qui va elle même déléguer au système d'exploitation. D'une manière ou d'une autre l'I/O c'est l'OS qui gère.
Bonjour

"Il n'empêche qu'à un moment tu as parlé de telenet, cette commande je sais qu'elle concerne une connexion tcp. Il y'a une classe en C# qui permet de faire du tcp, sans appeler telenet et donc sans cmd. "

Pourrais-tu me montrer un exemple de l'utilisation de cette classe STP ?
Messages postés
15633
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
28 février 2021
667
Y’en a plein le net des exemples, il suffit d’en faire l’effort de chercher
https://www.qwant.com/?q=C%23+tcp&t=all

Mais ça n’est pas ça la solution.
Tes scripts sont écrits comme ils le sont car ils sont le reflet de la logique de leur développeur dans le contexte batch avec ses possibilités et ses limitations.
Le même développeur dans le contexte de c# aurait pu avoir une autre logique, car les possibilités et les limitations ne sont pas les mêmes.

Donc définis à quel besoin répond le script, demande toi comment toi, en Java ou en c#, tu répondrais à ce besoin (le script et l’objet sont 2 façons de penser le codage très différentes) et après seulement interroge toi sur les solutions techniques.