2 votes

Besoin d'un fichier batch pour exécuter plusieurs cmd Windows ou pour mettre en mémoire tampon plus de 9999 lignes.

J'ai besoin d'exécuter une commande dans une fenêtre cmd (sous XP) qui renverra des résultats sur les fichiers d'un répertoire donné. Heureusement, un répertoire donné ne contient pas plus de 9999 fichiers, donc si je règle le tampon de ligne à 9999, tout va bien. Cependant, je dois exécuter cette commande sur environ 600 répertoires ! J'apprécierais toute suggestion sur la manière de résoudre ce problème.

Je pensais à un fichier batch qui ouvrirait une invite cmd, définirait la mémoire tampon à 9999 lignes, exécuterait la commande, laisserait la fenêtre ouverte, et pendant que la première fenêtre fonctionne, ouvrirait une nouvelle fenêtre et répéterait le processus.

Bien sûr, si je pouvais mettre en mémoire tampon ou renvoyer d'une manière ou d'une autre les résultats de plus de 9999 fichiers, ce serait encore mieux.

Merci d'avance, André

4voto

techturtle Points 8626

Vous pouvez enregistrer la sortie d'écran dans un fichier texte à l'aide de la fonction > ou >> . Pour l'utiliser, entrez la commande comme vous le feriez normalement, mais à la fin, ajoutez un ou deux plus grands que et le nom du fichier vers lequel vous voulez sortir, comme ceci : dir c:\users /s > c:\list.txt L'utilisation d'un seul > créera toujours un nouveau fichier, écrasant tout fichier existant portant ce nom. En utilisant deux >> créera le fichier s'il n'existe pas, mais l'ajoutera aux fichiers existants. Cela peut s'avérer très utile pour l'enregistrement des fichiers batch, car vous pouvez mettre >> file.txt après chaque ligne et il produira toutes les données de l'écran dans le même fichier afin que vous puissiez les examiner dans l'ordre. Gardez à l'esprit que l'utilisation de cette méthode empêchera la sortie à l'écran, car elle la redirige vers le fichier. Vous pouvez généralement ouvrir le fichier pour le consulter même lorsqu'il est en cours de création (assurez-vous simplement de ne pas le verrouiller ou de ne pas l'enregistrer).


Exemple de fichier batch avec quelques enregistrements :

@echo off
SET DATENOW=%date:~-4,4%-%date:~-10,2%-%date:~-7,2%
SET TIMENOW=%time:~-11,2%.%time:~-8,2%.%time:~-5,2%
SET FILENAME="C:\Logs\Finance Batch %DATENOW% [%TIMENOW%].log"

if not exist "C:\Logs" md C:\Logs

ECHO ---START BATCH FILE---  [%time%]>> %FILENAME%
ECHO Clearing current folder... [%time%] >> %FILENAME%
if exist "C:\Files" rd "C:\Files" /s/q >> %FILENAME%
if not exist "C:\Files" md "C:\Files" >> %FILENAME%

ECHO Copying data from SHAREDOCS... [%time%] >> %FILENAME%
xcopy "\\domain.local\sharedocs\*.*" "C:\Files" /EXCLUDE:exclist.txt /e /c /z /k >> %FILENAME%

ECHO ---BATCH FILE COMPLETE---  [%time%]>> %FILENAME%
ECHO. >> %FILENAME%

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X