Le code de fichier de lot Windows le plus court pour obtenir la première ligne d’un ensemble de fichiers sur une variable?

Je cherche la quantité de code la plus courte possible qui obtiendra la première ligne d’un fichier texte et la définira sur une variable dans Windows.

Il y a beaucoup d’exemples de ce genre de chose dans d’autres threads sur ce site StackExchange, mais je ne cherche pas comment parcourir et afficher toutes les lignes dans un fichier. Ce que je veux, c’est simplement obtenir la première ligne.

set /p var=  

Référencé à partir de: http://forums.techguy.org/software-development/551867-batch-file-read-line-text.html Ironiquement, l'affiche est en mesure d'obtenir la première ligne, mais elle souhaite parcourir l'ensemble du fichier!

c’est juste une version légèrement plus courte:

 set/pz= 

Je ne pouvais pas faire fonctionner ceci sous Windows 7; la variable n’était simplement pas définie. Mais voici une solution légèrement plus longue:

 for /F "delims=" %%i in (Text.txt) do ( set Z=%%i goto BREAK1 ) :BREAK1 echo %Z% 

Si l’extension retardée a été activée avant ( Setlocal EnableDelayedExpansion ), il existe une version plus courte (une ligne)

 set /pz= 

J’ai dû changer la ligne de fichier pour un fichier texte dans le répertoire Program Files(x86) . Après avoir essayé beaucoup de solutions, la solution suivante a fonctionné pour moi:

Pas:

Etape 1) utilisez la commande type avec le findstr pour obtenir un fichier avec les données souhaitées

Étape 2) supprimer le fichier d’origine

Étape 3) utilisez la commande type pour déplacer le contenu dans le fichier avec le nom de fichier d’origine

Étape 4) Supprimer le nouveau fichier

Exemple:

 @echo off set originalFile="C:\Program Files (x86)\\" set newFile="C:\Program Files (x86)\\" if exist %originalFile% ( type %originalFile% | findstr /v T4VSHost >> %newFile% del %originalFile% /F /Q type %newFile% >> %originalFile% del %newFile% /F /Q ) @echo on 

Remarque:

Lorsque j’ai essayé d’écrire le changement dans le fichier d’origine à l’étape 1, le résultat était un fichier vide.

Notez que la chaîne que je correspond est T4VSHost , qui apparaît dans le fichier au chemin

C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Outils Microsoft \ Entity \ Templates \ Includes \ EF6.Utility.CS.ttinclude

juste FYI…

Je l’ai essayé et n’a pas fonctionné. Mais j’ai finalement réalisé que je devais reproduire le fichier texte (à l’origine, le fichier texte est généré par un script PowerShell) alors quand j’ai fait cela et que cela fonctionne.

 :: output to different file Type Text.txt > text2.txt 

Ensuite, appliquez le même code (changez text.txt en text2.txt )

 set /p var=  

Si j'utilise l'original, j'obtiendrais des erreurs dans %var% , je ne sais pas si le fichier texte n'a pas ou quoi. En tout cas, en reproduisant le fichier texte, cela semble fonctionner correctement.