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 lefindstr
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.