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 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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchte ich darauf hinweisen, dass die "Tests 1.2.3..." und "Drücken Sie eine beliebige Taste, um fortzufahren . . ." der Linien zeigt, dass die Ausführung erfolgreich gegangen :dozip label und dann erfolgreich an den Aufrufer zurückgegeben.
Ist die "7za" ausführbare eigentlich eine batch-Datei? Wenn ich änderungen an meinem test-Skript haben die Helfer eine batch-Datei, bekomme ich den gleichen Fehler. Das Update ist für 'call %zip% %1'
Haben Sie eine 7za.Fledermaus in deiner %path%? Sowieso, versuchen Sie "%zip% %1" Zeile "call %zip% %1".
Danke Andreas, ja, 7za.bat war in meinem Weg, das problem war, dass ich mit 7za.Fledermaus überhaupt. Siehe meine "Antwort" - Abschnitt in meinem post.
Oh.. sieht aus wie Eltern eigentlich schon... ich Dummerchen
InformationsquelleAutor Andrew Medico
die moral von der Geschichte: beim Aufruf externer Programme/Batchdateien in einer batch-Datei, verwenden Sie call
und/oder
(Aufruf einer batch von einem anderen getan worden seit den Tagen von DOS, nur daran erinnern, zu nennen)
InformationsquelleAutor Anders
Eine Möglichkeit, obwohl es scheint unwahrscheinlich, dass die Befehlserweiterungen nicht aktiviert, oder up-to-date, und dieser wird sich mit call/goto/label Verhalten.
Versuchen:
und wenn es weniger als
[2]
(oder leer -[]
), dann überprüfen, um zu sehen, obcmd.exe
aufgerufen wird mit/e:off
oder führen Sie einfachin der Konsole Fenster, wo Sie ausführen dieser batch-Datei.
InformationsquelleAutor system PAUSE
Sind Sie mit Windows NT 4/Windows 2000? Nur dort können Sie ANRUFEN, um Subroutinen, die innerhalb der gleichen batch-Datei.
InformationsquelleAutor Jacob
Suchen Sie genau auf Ihre hex -, es eigentlich nicht haben alle CRLF (
0d 0a
). Mehrere Linien enden in LF-nur (0a
ohne eine Vorherige0d
).Überprüfen Sie in Ihrem hex-editor, um sicherzustellen, dass jeder
0a
vorangestellt ist0d
(genau eine).Oder einfach Ausschneiden und einfügen die Datei in ein leeres Editor-Dokument, und speichern Sie Sie erneut.
Ich umgestrickt, Doppel-und dreifach-überprüfung meiner CRLF. Funktioniert immer noch nicht. 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
InformationsquelleAutor system PAUSE