Windows-batch-Datei - Das system kann nicht finden die batch-Etikett angegeben

Das Problem

Ich habe ein problem mit einer DOS-batch-Datei und labels.
Ich bekomme immer diese Fehlermeldung:

Das system nicht finden können, die label-batch
angegeben

, Was ich versucht habe

  • Zwei Computer, ein WindowsXP und ein 2003 Server.
  • Gemacht sicher, es war codiert als ASCII -
  • Editierte der hex-code für das Zeilenfortsetzungszeichen. Versucht, anstelle alle mit CR , LF und CRLF in der Reihe. Alle Kombinationen, die geben mir den gleichen Fehler.
  • Versucht, einfügen von zusätzlichen Zeichen vor der Bezeichnung, um die Bezeichnung der Vergangenheit 512 Zeichen.

Hier ist der code:

cls
@echo off
SET zip=7za a dependencies.7z
call:dozip "c:\temp\dir.txt"

pause
goto exit

:dozip
  echo Testing 1.2.3...
  %zip% %1
goto:eof
:exit

Hier ist die hex mit CRLF (0d 0a).

63 6c 73 0d 0a 53 45 54 20 7a 69 70 3d 37 7a 61 20 61 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 37 7a 0d 0a 63 61 6c 6c 3a 64 6f 7a 69 70 20 22 63 3a 5c 74 65 6d 70 5c 64 69 72 2e 74 78 74 22 0d 0a 0d 0a 70 61 75 73 65 0d 0a 67 6f 74 6f 20 65 78 69 74 0d 0a 0d 0a 3a 64 6f 7a 69 70 0d 0a 20 20 65 63 68 6f 20 54 65 73 74 69 6e 67 20 31 2e 32 2e 33 2e 2e 2e 0d 0a 20 20 25 7a 69 70 25 20 25 31 0d 0a 67 6f 74 6f 3a 65 6f 66 0d 0a 3a 65 78 69 74

Hier ist die Konsole Ausgabe (wenn ich remove @echo off):

C:\>SET zip=7za a dependencies.7z

C:\>call:dozip "c:\temp\dir.txt"

C:\>echo Testing 1.2.3...
Testing 1.2.3...

C:\>7za a dependencies.7z "c:\temp\dir.txt"
The system cannot find the batch label specified - dozip

C:\>pause
Press any key to continue . . .

Es eigentlich nie schafft, die 7zip-Datei, so dass ich denke, ich kann davon ausgehen, dass Ihren Absturz auf dieser Linie;

7za a dependencies.7z "c:\temp\dir.txt"

Wenn ich die Linie, indem Sie sich von einer Eingabeaufforderung aus, es funktioniert gut und schafft Abhängigkeiten.7z, also ich glaube nicht, dass es unbedingt ein problem mit 7za.exe.

Hab ich auch schon gelesen diese stackoverflow-Frage:
stackoverflow.com/questions/232651/why-the-system-cannot-find-the-batch-label-specified-is-thrown-even-if-label-ex

und den link von diesem post;
help.wugnet.com/windows/system-find-batch-label-ftopict615555.html

Die Antwort

So, ich habe das problem gefunden, Jungs.

Ich war mit einer Technik, die ich Häufig benutze, könnte ich nur beschreiben als "proxy" batch " - Dateien. Ich habe einen Ordner namens c:\scripts und ich habe einige bat-Dateien gibt, um den Gegner Häufig verwendet, exes. Das spart meine PATH-variable immer absolut Massiv mit meinem Kommandozeilen-tools. Auf diese Weise brauche ich nur hinzufügen c:\scripts auf meinem PFAD, und erstellen Sie eine proxy-batch-Datei, wenn ich etwas brauche.

Hatte ich 7za.Fledermaus in c:\scripts mit nur diesem;

@echo off
"C:\Program Files\7-zip\7za.exe" %*

Änderte ich mein Skript;

SET zip="c:\program files\7-zip\7za.exe" a dependencies.7z

statt;

SET zip=7za a dependencies.7z

und es funktionierte einwandfrei.

Die moral von der Geschichte...

Vermeiden, fordern andere batch-Dateien in einer batch-Datei. Wenn Sie dies tun, müssen Sie das Präfix mit "nennen".

Funktioniert bei mir auf dem Server 2003. Eingabe mit notepad.exe, mit ANSI-Codierung gespeichert, und lief aus cmd.exe.
Funktioniert einwandfrei auf meinem XP-box auch mit notepad und ANSI-Codierung
Wahrscheinlich irrelevant, aber was ist der name dieser batch-Datei?
War es ursprünglich als 7z.Fledermaus, ich habe versucht zu testen.Fledermaus, 7z111.Fledermaus... die selben Fehler
Ja, das würde es tun. In meiner batch-Dateien lege ich immer den vollständigen Dateinamen, zum Beispiel 7za.exe oder call helper.bat. (Beachten Sie, dass dieser Weg, alles andere endet in .bat offensichtlich.)

InformationsquelleAutor csauve | 2009-10-05

Schreibe einen Kommentar