2017-10-19 23 views
0

fichier source est présente de manière suivante: -Comment lire fichier ligne par ligne à l'aide lot

abc

DFC

BDAC

J'utilise ci-dessous code imprime chaque ligne dans le fichier.

for /f "tokens=* delims=" %%a in ('type input.txt') do (

set line=%%a 
echo %line% 
) 

mais la sortie est

BDAC

BDAC

BDAC

Que faire? sortie requise est:

abc

DFC

BDAC

+0

Pourquoi mettriez-vous powershell bas si vous étiez pas à la recherche d'aide powershell? – ArcSet

+0

Allons supposer que vous ne comprenez pas ce que signifie le mot anglais ** pause **. Ouvrez une invite cmd et tapez: 'pause /?'. Si vous allez affecter la variable FOR à une variable d'environnement, vous devez utiliser l'expansion différée pour référencer la variable. Lisez ceci: https://ss64.com/nt/delayedexpansion.html – Squashman

+0

@Squashman: - J'ai ajouté ce 'setLocal EnableDelayedExpansion' dans le script toujours le même. –

Répondre

0

@Squashman a fourni la réponse vraiment, mais ici il est écrit:

setLocal EnableDelayedExpansion 

for /f "tokens=* delims=" %%a in ('type input.txt') do (
set line=%%a 

echo !line! 
) 
+2

Il n'est pas nécessaire de parcourir la sortie de 'type'. 'for' peut lire le fichier très bien. – Joey

1

À moins que vous spécifiquement besoin de manipuler la ligne ou enregistrer le contenu de la dernière ligne i n une variable il n'y a absolument pas nécessaire d'utiliser une boucle For:

Type input.txt