Unter der Annahme, keine Leerzeilen gibt, die
aufbewahrt werden müssen
for /f usebackq^ delims^=^ eol^= %%A in ("yourFile.txt") do call echo(%%A
Wenn es Leerzeilen, aber keine Zeile beginnt mit :
, dann
for /f "delims=: tokens=1*" %%A in ('findstr /n "^" "yourFile.txt"') do call echo(%%B
Wenn Leerzeilen vorhanden sind und einige Zeilen mitbeginnen, und es gibt keine !
Literale
setlocal enableDelayedExpansion
for /f "delims=" %%A in ('findstr /n "^" "yourFile.txt"') do (
set "ln=%%A"
call echo(!ln:*:=!
)
Wenn es Leerzeilen und einige Linien beginnen mit :
, und es gibt !
Literale
for /f "delims=" %%A in ('findstr /n "^" "yourFile.txt"') do (
setlocal enableDelayedExpansion
set "ln=%%A"
call echo(!ln:*:=!
endlocal
)
Alle der oben genannten Verwendung AUFFORDERUNG, die nach unten Dinge verlangsamt wesentlich. Die Lösung ist schneller, wenn Sie !hello!
in Ihrer Datei anstelle von %hello%
setzen, und dann können Sie sich auf verzögerte Erweiterung verlassen, um die Variable zu erweitern.
Wenn keine Leerzeilen
setlocal enableDelayedExpansion
for /f usebackq^ delims^=^ eol^= %%A in ("yourFile.txt") do echo(%%A
Wenn Leerzeilen, aber keine Zeile beginnt mit :
setlocal enableDelayedExpansion
for /f "delims=: tokens=1*" %%A in ('findstr /n "^" "yourFile.txt"') do echo(%%B
Wenn Leerzeilen, und einige Linien beginnen mit :
setlocal enableDelayedExpansion
for /f "delims=" %%A in ('findstr /n "^" "yourFile.txt"') do (
set "ln=%%A"
echo(!ln:*:=!
)
Können Sie klären, was du machen willst und was ist dein Problem? Was bedeutet es, dass Sie "Holi" begrüßen? Was meinst du mit der Auflösung variabler Inhalte? – kaskader
@kaskader - Fradantim hat eine Umgebungsvariable namens 'hallo' mit einem Wert von' holi'. Er möchte den Inhalt der Datei schreiben, aber Variablennamen in Prozent, die erweitert werden sollen. – dbenham
danke @dbenham, viel klarer jetzt! Es wäre toll, wenn Sie die Frage neu schreiben könnten, damit sie leichter zu verstehen ist! – kaskader