2011-05-13 5 views
0

J'ai besoin d'aide avec cette instruction au moment où elle est exécutée dans un fichier séquentiel, elle lance toutes les lignes d'un fichier texte, par ex.Aide de fichier batch (pour instruction)

file1.txt:

notepad 
wordpad 

il lancera:

start notepad 
start wordpad 

Bien que je voudrais être en mesure de préciser quelle ligne il exécutera, au lieu de les exécuter tous (ce qui fait au moment)

for /f "delims=|" %%i in (file1.txt) do @start "x" %%i 

Toute aide serait grandement apprécié

+1

Jetez un oeil à cette réponse pour traiter un numéro de ligne spécifique http://stackoverflow.com/questions/2701910/windows-batch -file-to-echo-a-specific-line-number –

+0

Je pense qu'ils peuvent vous aider plus que nous: http://superuser.com/ – BlackBear

Répondre

0

Si vous connaissez le numéro de ligne que vous souhaitez exécuter, vous pouvez utiliser quelque chose comme ceci:

for /f "tokens=2* delims=]" %%I in (' find /V /N "" file1.txt ^| findstr /B /L "[1]" ') do @start "x" %%I 

find/V/N "" file1.txt - Affiche toutes les lignes de fichier1. txt qui ne sont pas "" (donc fondamentalement toute ligne qui n'est pas vide/vide/null), et ajoute des nombres sous la forme de [#] à la ligne. Cette commande sortie:

[1] bloc-notes

[2] WordPad

findstr/B/L "[1]" - Nous prenons maintenant l'avantage d'avoir des numéros de ligne pour extraire le commande correcte. "/ B" recherche la chaîne au début de la ligne. "/ L" est une recherche littérale. Dans cet exemple, nous correspondons à la ligne n ° 1 qui retournerait "notepad" comme %% I