Quelque chose comme ça?
de CMD.exe lui-même,
type C:\Text.txt
Si c'est un fichier batch, puis
type C:\Text.txt
pause
ou pour voir juste le contenu, utilisez plus
more C:\Text.txt
Si vous voulez exécuter des commandes à partir du fichier au lieu d'essayer d'insérer les commandes du fichier texte dans la console cmd, vous devriez r le construire comme un fichier batch qui est un exécutable. vous faites cela en renommant le fichier soit .bat
ou .cmd
puis vous insérez vos commandes dans le fichier et exécutez-le en double-cliquant sur le fichier ou en l'exécutant à partir d'un planificateur etc Voici un exemple de batch ou cmd file:
echo Please wait while I execute.
tp merge $/ServerFolderA $/ServerFolderB
Alors juste quelques explications sur vos commandes initiales. Lorsque vous avez exécuté:
start cmd.exe | c:\text.txt
vous a dit en fait le système d'exécuter plusieurs exécutables à partir d'une seule commande. Les commandes de tuyau est comme séparateur pour spécifier chaque commande. donc ceci:
ping 127.0.0.1 | nslookup www.google.com | cmd.exe | c:\text.txt
va réellement faire toutes ces commandes dans l'ordre, d'abord il ping, le faire nslookup, cmd.exe ouvert puis ouvrez c: \ text.txt
Ici, vous étiez sur la bonne piste, mais je suppose que vous aviez une seule ligne dans le fichier et non une nouvelle ligne.
start cmd.exe < Text.txt
qui utilisera le fichier Text.txt comme un fichier de réponses si je le modifier et insérer les éléments suivants:
echo This is an answer file
ping 127.0.0.1
ping 10.132.4.99
echo Completed all commands
puis exécutez start cmd.exe < Text.txt
il exécutera tout en séquence. Cette différence est qu'il lit le fichier ligne par ligne et affiche chaque commande qu'il exécute.de sorte que votre sortie sera quelque chose comme ceci:
C:\>echo this is an answer file
this is an answer file
ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
ping 10.132.4.99
Pinging 10.132.4.99 with 32 bytes of data:
Reply from 10.132.4.99: bytes=32 time=3ms TTL=254
Ping statistics for 10.132.4.99:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 3ms, Maximum = 8ms, Average = 4ms
Comme vous pouvez le voir cela fonctionne parfaitement, mais il affiche chaque commande que vous exécutez sauf, il ne fonctionne pas la commande dernière qui est echo Completed all commands
. Donc, pour exécuter toutes les commandes, vous devez toujours ajouter une nouvelle ligne après vos dernières commandes. Cependant, quand vous le renommez en .cmd
, il exécutera simplement les commandes sans afficher les commandes à exécuter et exécutera chaque ligne jusqu'à la fin. L'autre problème avec le fichier de réponses est-il lit ligne par ligne, afin d'avoir 3 nouvelles lignes sans texte dans le fichier de réponses se traduira par quelque chose comme ça
C:\>
C:\>
C:\>
Donc juste après avoir cela dans le fichier de réponses:
ping 127.0.0.1
ne fonctionnera pas car il est une seule ligne sans la section saisir.
mais en ajoutant simplement une nouvelle ligne après le faire fonctionner.
J'espère que tout cela a du sens.
la réponse ci-dessous ne répond pas exactement à la question, mais la conversation a en dessous une belle solution hackish mais élégante qui répond à la question! – uniXVanXcel