La lecture d'une ligne spécifique dans un fichier texte à une variable dans un fichier de commandes
Dans un de mes fichiers batch, je suis d'essayer d'écrire, j'ai besoin de lire la dernière ligne 5 ligne du fichier texte dans une variable. D'une façon j'ai pensé à faire ce pourrait être d'avoir chaque ligne qui est mis dans le fichier texte remplace la précédente (comme la création des fichiers et les lignes sont tous créés par une commande, plus précisément slmgr /xpr) mais je ne suis pas sûr de la façon de le faire. Toutes les suggestions ou d'autres moyens de le faire sont appréciées!
cscript %windir%\system32\slmgr.vbs /xpr > xprtest.txt
pause
for /F "skip=4 delims=" %i in (xprtest.txt) set /p xprvar= <xprtest.txt
pause
echo %xprvar%
OriginalL'auteur user2997654 | 2014-03-10
Vous devez vous connecter pour publier un commentaire.
si vous voulez spécifiquement la ligne 5:
OU
si vous voulez la dernière ligne quel que soit le nombre de lignes:
Extraordinaire. Il fonctionne pour moi comme-est.
Je vais essayer cela pour obtenir la troisième ligne dans mon fichier mais il ne reçoit jamais il ne sait pas quel est le problème?
set "xprvar="
for /F "skip=3 delims=" %%i in ("Z:\my folder\displayname.txt") do if not defined xprvar set "xprvar=%%i"
Vous devez lever votre propre question. Vous n'avez pas dit ce la valeur est affectée à
xprvar
- je suggère qu'il serait la valeur de la ligne 4 de votre fichier. De l'avis de l'OP ici est de poser des questions pour ligne5
de sorte que leskip
valeur est4
. Par conséquent, puisque vous voulez ligne3
, attribuer2
, pas3
comme leskip
valeur.OriginalL'auteur Magoo
La
for
de commande est très puissant de nos jours:Sauter les 4 premières lignes, laissant la 5e ligne de manière efficace. Pas de délimiteurs, de sorte que vous obtenez une ligne complète, et pas seulement le premier élément de la ligne.
Remplacer
echo %i
par tout ce que vous voulez faire avec la ligne 5.ajouté le code dans l'OP pour une meilleure veiwing. Reçois "Une erreur inattendue s'est produite"
Remplacer
set /p xprvar= <xprtest.txt
parset /p xprvar=%i
BTW: c'est pas gentil de faire d'importantes modifications à la question, surtout ne pas copier des éléments de réponse. Pourquoi? Parce que maintenant on dirait que j'ai donné une réponse qui est pire que de la question, j'ai donc le risque de downvotes.
ah ok merci!!!! je vais éviter à l'avenir
OriginalL'auteur Thomas Weller