Windows fichier de commandes pour l'écho d'un numéro de ligne spécifique

Ainsi, pour la deuxième partie de mon dilemme actuel, j'ai une liste de dossiers dans c:\file_list.txt. J'ai besoin d'être en mesure de les extraire (bien, s'en faire l'écho avec certains mods) basé sur le numéro de la ligne, parce que ce lot de script est appelé par un processus itératif de macro processus. Je suis de passage le numéro de la ligne en tant que paramètre.

@echo off
setlocal enabledelayedexpansion
set /a counter=0
set /a %%a = ""
for /f "usebackq delims=" %%a in (c:\file_list.txt) do (
   if "!counter!"=="%1" goto :printme & set /a counter+=1
)
:printme
echo %%a

ce qui me donne une sortie de %a. Doh! Donc, j'ai essayé en faisant écho à !a! (résultat: ECHO is off.); j'ai essayé d'en écho %a (résultat: a)

J'ai pensé que la chose la plus facile à faire serait de modifier le head.bat code trouvé ici:
Windows commande de lot(s) à lire la première ligne du fichier texte

à l'exception plutôt que faisant écho à chaque ligne, j'avais juste l'écho de la dernière ligne trouvée. Pas aussi simple qu'on pourrait le penser. J'ai remarqué que mon compteur reste à zéro pour une raison; je me demandais si le set /a counter+=1 est de faire ce que je pense qu'il est en train de faire.

  • Notez que for /f sauter des lignes vides. Cela peut et va probablement jeter votre compterez dans certains cas.
InformationsquelleAutor Lee | 2010-04-23