8
votes

Windows Batch Fichier - Le système ne trouve pas l'étiquette de lot spécifiée.

Le problème

J'ai un problème avec un fichier de lots Windows et des étiquettes. Je continue à obtenir cette erreur: p>

Le système ne peut pas trouver l'étiquette de lot spécifié p> blockQuote>

ce que j'ai essayé h2>
  • deux ordinateurs; un serveur WindowsXP et un serveur de 2003. LI>
  • Ronsassemment qu'il a été codé comme ASCII LI>
  • ÉDITÉ LE CODE HEX pour les caractères de continuation de la ligne. J'ai essayé de remplacer tout avec CR, LF et CRLF à son tour. Toutes les combinaisons me donnent la même erreur. Li>
  • a essayé d'insérer des caractères supplémentaires avant que l'étiquette puisse faire l'étiquette de 512 caractères. Li> ul>

    Voici le code: p>

    SET zip=7za a dependencies.7z
    


6 commentaires

Fonctionne bien pour moi sur le serveur 2003. Tapée à l'aide de NotePad.exe, enregistré avec encodage ANSI et couru de cmd.exe.


Fonctionne bien sur ma boîte XP aswell à l'aide de Bloc-notes et de l'encodage ANSI


Probablement hors de propos, mais quel est le nom de ce fichier de commandes?


Il a été appelé à l'origine 7z.bat, j'ai essayé test.bat, 7z111.bat ... même erreur


Oui, ça le ferait. Dans mes fichiers de lot, j'ai toujours mis le nom de fichier complet, par exemple 7za.exe ou appel helper.bat . (Notez que de cette façon, tout ce qui se termine dans .bat sera évident.)


J'ai aussi trouvé cette erreur dans Windows 10, mais seulement récemment. Je me demande s'il y avait une mise à jour qui a cassé la commande (shell). Sur la " morale de l'histoire " commentaire - appelez et goto ont une sémantique très différente, utilisez celui qui correspond à votre requéron.


7 Réponses :


0
votes

Utilisez-vous Windows NT 4 / Windows 2000 ? Seulement là, vous pouvez utiliser l'appel pour appeler les sous-routines dans le même fichier de commandes.


0 commentaires

7
votes

Je voudrais souligner que le "test 1.2.3 ..." et "appuyez sur n'importe quelle touche pour continuer.." Les lignes indiquent que l'exécution a été passée avec succès à la: Dozip Label puis est retourné avec succès à l'appelant.

est l'exécutable "7za" en fait un fichier de commandes? Si je modifie mon script de test pour que l'assistant soit un fichier batch, je reçois la même erreur. Le correctif est de faire 'appeler% zip%% 1'


3 commentaires

Je vais ajouter la sortie complète sans le @echo OFF. Cela peut briller de la lumière sur la situation.


Avez-vous un 7za.bat dans votre% de path%? Quoi qu'il en soit, essayez de changer la ligne "% zip%% 1" "à" Call% zip %% 1 ".


Merci Andrew, oui, 7za.bat était sur mon chemin, le problème était que j'utilisais 7za.bat du tout. Voir ma section "réponse" de mon message.



0
votes

À la recherche de près de votre hexagone, il n'a pas réellement que tout CRLF ( 0A ). Plusieurs lignes finissent par LF-uniquement ( 0a sans précédent 0d ).

Vérifiez votre éditeur hexagonal pour vous assurer que chaque 0A est précédé par 0d (exactement un).

ou simplement couper et coller votre fichier dans un document de bloc-notes vierge et le sauvegardez-le.


2 commentaires

Merci! Je vais essayer ça. Peut-être que j'ai manqué une la dernière fois que j'ai fait mon heex trouva / remplacé. Je l'ai fait par le globe oculaire alors j'ai peut-être manqué quelque chose.


Je le refaites, double et triple vérifie mon CRLF. Toujours ne fonctionne pas. 63 6C 73 0D 0A 53 45 54 20 7A 69 70 3D 37 7A 61 65 61 20 64 65 70 65 6E 65 65 6E 63 69 65 73 2E 37 7A 0A 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 0A 0A 70 61 75 73 65 0D 0A 67 6F 74 6F 20 65 78 69 74 0D 0A 0A 0A 3A 64 6F 7A 69 70 0D 0A 20 20 65 63 68 6F 20 54 65 73 74 6E 65 73 74 69 6E 67 20 32 2E 33 2E 33 2E 2E 2E 0A 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



1
votes

Une possibilité, bien qu'elle semble improbable, que les extensions de commande ne sont pas activées, ni à jour, ce qui interfère avec le comportement des appels / goto / étiquettes.

Essayez: P>

cmd /e:on


1 commentaires

ECHO [% cmdextversion%] renvoie [2]



3
votes

La morale de l'histoire: lorsque vous appelez des programmes externes / des fichiers de lots dans un fichier de commandes, utilisez appelez

call %foo%


0 commentaires

1
votes

Le message d'erreur "Le système ne trouve pas l'étiquette de lot spécifié" m'a apporté ici (10 ans plus tard!) Et le problème s'est avéré être le CRLF était incorrect.

La cause, dans notre cas, était un référentiel GIT qui ne reconnaissait pas les fichiers de batte comme des fichiers texte nécessaires à la CRLF sur une machine Windows 7.

Notre solution consistait à créer un fichier .gitattributes contenant la ligne: xxx

puis supprimant les fichiers BAT et la vérification du référentiel a réécrivé notre Fichiers BAT avec les fins de la ligne appropriées. Les étiquettes de chauve-souris travaillent maintenant à nouveau.


1 commentaires

+1 c'était ça. Assurez-vous de supprimer toute copie à distance après avoir commis le fichier .gitaTatriBute afin que le repo soit vérifié à nouveau.



1
votes

Dans mon cas, les raisons de "Le système ne peuvent pas trouver l'étiquette de lot spécifié" étaient:

  1. Aucun appel avant JAR- et DISCIP-COMMANDES
  2. Pas d'endlocal pour chaque désactivé à mobilité réduiteExpansion
  3. Une autre autre magie de lot, que je n'ai pas complètement comprise à proximité de SetLocal DelayedExpansion, il était important de placer ensemble param = 1 après la séélisation des personnes à mobilité réduite ou quelque chose comme ça

0 commentaires