Je veux apprendre à écrire des scripts batch et j'ai essayé de créer un script qui lance automatiquement cette commande une fois dans la ligne de commande:
ping www.google.de -t
et affiche le ping, donc cela ressemblerait à ceci:
Reply from XXX.XXX.X.XX: time=30ms
Reply from XXX.XXX.X.XX: time=31ms
Reply from XXX.XXX.X.XX: time=29ms
Mon problème est que cela entraînera ceci lorsque j'exécuterai cette commande en tant que script:
Mon problème est qu'il n'exécutera pas la commande ping du tout, mais insérera simplement la commande un nombre illimité de fois dans la fenêtre de la console, comme indiqué sur la capture d'écran.
Je viens de créer un nouveau fichier, d'écrire ping www.google.de -t
dedans, de l'enregistrer en tant que fichier ping.bat
et de l'exécuter en double-cliquant dessus.
Alors, comment écrire le fichier de commandes pour démarrer cette commande une seule fois et afficher le résultat du ping?
Entrez dans une commande Invite window ping /?
et lisez la sortie d’aide abrégée après avoir appuyé sur RETURN. Ou jetez un oeil sur
Explication de l'option -t
donnée par Microsoft:
Envoie une requête ping à l'hôte spécifié jusqu'à ce qu'il soit arrêté. Pour voir les statistiques et continuer, tapez Control-Break. Pour arrêter, tapez Control-C.
Vous voudrez peut-être utiliser:
@%SystemRoot%\system32\ping.exe -n 1 www.google.de
Ou pour vérifier d'abord si un serveur est disponible:
@echo off
set MyServer=Server.MyDomain.de
%SystemRoot%\system32\ping.exe -n 1 %MyServer% >nul
if errorlevel 1 goto NoServer
echo %MyServer% is availabe.
rem Insert commands here, for example 1 or more Net Use to connect network drives.
goto :EOF
:NoServer
echo %MyServer% is not availabe yet.
pause
goto :EOF
Je suis sûr que vous devez avoir nommé le fichier bat correspondant sous le nom "ping.bat". Si vous renommez votre fichier en quelque chose d'autre, dites pingXXX.bat. Cela fonctionnera certainement. Essaye le.
mon fichier de commandes contient uniquement le code ci-dessous
ping 172.31.29.1 -t
avec un nom de fichier comme ping.bat
avec le nom de fichier abc.bat
Vous ne savez pas exactement ce que vous essayez, mais votre code posté devrait fonctionner correctement. Si vous ne souhaitez pas que la commande soit affichée, ajoutez @echo off
au début de votre script. Si j'ai le code ci-dessous dans un fichier nommé test.bat
et que je l'exécute en tant que commande test.bat
, cela fonctionnera parfaitement.
@echo off
ping www.google.de -t
Pour adresser votre EDIT:
où la préoccupation principale est la commande ping
n'était pas reconnaissable. La commande ping
sera généralement située sous C:\Windows\System32\
, où C:\
sera le répertoire racine. Si le répertoire racine est différent, vous pouvez l’obtenir à l’aide de la variable d’environnement %SystemRoot%
et indiquer ce qui suit:
%SystemRoot%\Windows\System32\PING.EXE www.google.de -t
Une autre façon de savoir si la commande que vous essayez d'exécuter est reconnaissable ou non consiste à utiliser la commande WHERE
comme ci-dessous.
where ping
Si la commande est reconnaissable; il sortira le chemin comme
C:\Windows\System32\PING.EXE
Sinon, entraînera une erreur
si vous voulez utiliser le nom "ping.bat", une petite astuce consiste à utiliser ce code:
@echo off
cd\
ping google.com -t
Il suffit d’ajouter que "cd \" et vous allez bien ...;)
Je sais pourquoi, vous utilisez le nom de fichier "ping" et le code "ping", il continue d'essayer de s'exécuter parce que son répertoire sélectionné, où se trouve ce fichier, est bien avant la commande ping: "cd C:\Windows\system32", le fichier contenant le ping du serveur est là!
Pour bash (OSX) ping google.com -c 1
(la recherche de casse vous a amené ici)
Avoir 2 scripts appelés test.bat et ping.bat dans le même dossier:
Le script test.bat contient une ligne:
ping google.com
Le script ping.bat contient les lignes suivantes:
@echo off
echo Hello!
pause
En exécutant "test.bat", le résultat sur CMD sera:
Hello!
Press any key to continue . . .
Pourquoi? Parce que "test.bat" appelle "ping.bat" ("ping google.com" est interprété comme appelant le script "ping.bat") . La même chose se produit si le script "ping.bat" contient "ping google.com ". Le script s’exécutera en boucle.
Des moyens faciles d'éviter cela:
- Ne nommez pas votre script "ping.bat".
- Vous pouvez nommer le script "ping.bat", mais utilisez "ping.exe google.com" à la place de "ping google.com".
j'ai utilisé exemple Mofi, et modifier certains paramètres, non, vous pouvez le faire -t
@% SystemRoot%\system32\ping.exe -n -1 4.2.2.4
Juste Écrivez la commande "Envoyez une requête ping à votre serveur IP" sans la citation double. Enregistrez le nom de fichier sous le nom nom de fichier.bat, puis exécutez le fichier de commandes en tant qu'administrateur.
La seule chose à laquelle vous devez penser dans ce cas est de savoir dans quel répertoire vous êtes sur votre ordinateur . Votre fenêtre de ligne de commande affiche C:\users\rei0d\desktop\
comme répertoire actuel.
Donc, la seule chose que vous devez vraiment faire est:
Supprimez la desktop
en "remontant" avec la commande cd ..
.
Donc, la commande complète serait:
cd ..
ping XXX.XXX.XXX.XXX -t