Entfernen Sie die ersten 3 Zeichen in var in der batch-Datei?
Wie mache ich das? Ich habe versucht:
set /p var=""
set var=%var:~3%
echo %var%
Wenn ich zum Beispiel den Text "Hello World" es sollte echo "lo World".
Sorry, ich war zu ungenau. Code ist nicht wirklich der code, aber dieser ist:
@echo off
setlocal EnableDelayedExpansion
set /p file=""
set cnt=0
for /F "delims=" %%j in (%file%.txt) do (
set /A cnt+=1
set line!cnt!=%%j
)
set cde=0
:code
set /a cde+=1
set line=!line%cde%!
if %line:~0,9% == err echo.%line:~3%
goto code
Versuchte ich nur, um es kürzer zu machen auch noch mit der Fehlermeldung.
- Nichts falsch, bei mir funktioniert.
- Funktioniert bei mir auch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe es gerade ausprobiert und es funktioniert genauso wie man es erwarten würde. Was erhalten Sie?
So, wie es scheint, müssen Sie möglicherweise zwei Dinge:
1) eine Art exit-Bedingung von Ihrer zweiten Schleife. Zwischen den
:code
label und diegoto code
für, wenn die passende Bedingung getroffen wird (d.h.,if %line:~0,3% == err
)Nicht zu wissen, was gewünscht wird, ist aus dem code, ich würde so etwas wie die folgenden
Diese pausiert und beendet wird, wenn Sie findet die passende Zeile
2) eine Art der Bedingung beenden, wenn Sie bis zum Ende der Linien und es wurde keine übereinstimmung. Mein Verdacht ist, dass dies ist, was verursacht die Fehler, die Sie sehen, wie Ihre input-Datei wahrscheinlich nicht, die diese Bedingung erfüllen.
if %line:~0,3% == err echo.%line:~3%>>"%file%.bat"
dies ist der Teil, wo ich bin immer ein Fehler.