Note that there are some explanatory texts on larger screens.

plurals
  1. POWindows batch file - The system cannot find the batch label specified
    primarykey
    data
    text
    <h2>The Problem</h2> <p>I'm having a problem with a DOS batch file and labels. I keep getting this error:</p> <blockquote> <p>The system cannot find the batch label specified</p> </blockquote> <h2>What I've tried</h2> <ul> <li>Two computers; a WindowsXP and a 2003 Server.</li> <li>Made sure it was encoded as ASCII</li> <li>Editted the hex code for the line continuation characters. Tried replacing all with CR , LF, and CRLF in turn. All combinations give me the same error.</li> <li>Tried inserting extra characters before the label to make the label past 512 characters.</li> </ul> <p>Here is the code:</p> <pre><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 </code></pre> <p>Here's the hex with CRLF (0d 0a). </p> <pre><code>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 </code></pre> <p>Here's the console's output (when I remove @echo off):</p> <pre><code>C:\&gt;SET zip=7za a dependencies.7z C:\&gt;call:dozip "c:\temp\dir.txt" C:\&gt;echo Testing 1.2.3... Testing 1.2.3... C:\&gt;7za a dependencies.7z "c:\temp\dir.txt" The system cannot find the batch label specified - dozip C:\&gt;pause Press any key to continue . . . </code></pre> <p>It never actually creates the 7zip file, so I think I can assume that its crashing on this line;</p> <pre><code>7za a dependencies.7z "c:\temp\dir.txt" </code></pre> <p>If I run that line by itself from a command prompt, it works fine and creates the dependencies.7z, so I don't think its necessarily a problem with 7za.exe.</p> <p>I've already read this stackoverflow question: stackoverflow.com/questions/232651/why-the-system-cannot-find-the-batch-label-specified-is-thrown-even-if-label-ex</p> <p>and the link from that post; help.wugnet.com/windows/system-find-batch-label-ftopict615555.html</p> <h2>The Answer</h2> <p>So, I found the problem guys.</p> <p>I was using a technique I commonly use that I could only really describe as "proxy" batch files. I have a folder called c:\scripts, and I put several bat files in there to target commonly used exes. This saves my PATH variable from becoming absolutely massive with all of my command line tools. This way I only need to add c:\scripts to my PATH, and create a proxy batch file when I need something.</p> <p>I had 7za.bat in c:\scripts, containing only this;</p> <pre><code>@echo off "C:\Program Files\7-zip\7za.exe" %* </code></pre> <p>I changed my script to this;</p> <pre><code>SET zip="c:\program files\7-zip\7za.exe" a dependencies.7z </code></pre> <p>instead of this;</p> <pre><code>SET zip=7za a dependencies.7z </code></pre> <p>and it worked flawlessly. </p> <h2>The moral of the story...</h2> <p>Avoid calling other batch files from within a batch file. If you do, you will need to prefix them with "<strong>call</strong>".</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload