web-dev-qa-db-fra.com

Le code de fichier batch Windows le plus court pour obtenir la première ligne d'un fichier défini sur une variable?

Je recherche la quantité de code la plus courte possible pour obtenir la première ligne d'un fichier texte et le définir comme variable dans Windows.

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

17
djangofan
set /p var= <Text.txt
echo %var%

Référencé à partir de: http://forums.techguy.org/software-development/551867-batch-file-read-line-text.html Ironiquement, l’affiche est capable d’obtenir la première ligne mais Je voulais parcourir tout le fichier!

32
Joe

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

set/pz=<file
echo %z%
11
nephi12

Je ne pouvais pas faire fonctionner cela sous Windows 7; la variable n'était tout 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%
2
user3110750

Si l'expansion retardée a été activée auparavant (Setlocal EnableDelayedExpansion), il existe une version plus courte (une seule ligne)

set /pz=<filename.txt&echo !z!
1
phuclv

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:

Étape 1) utilisez la commande type canalisée avec findstrpour 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

Étape 4) Supprimer le nouveau fichier

Exemple:

@echo off
set originalFile="C:\Program Files (x86)\<Target File Path>\<Target File Name>"
set newFile="C:\Program Files (x86)\<Target File Path>\<Target newFile Name>"
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 la modification dans le fichier d'origine à l'étape 1, le résultat était un fichier vide.

Notez que la chaîne que je mets en correspondance est T4VSHost, ce qui se produit dans le fichier dans le chemin

C:\Fichiers de programme (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF6.Utility.CS.ttinclude