Batch script to test if a folder exists fails when checking a UNC path

18,590

goto :unmap should be on the same line as the if

even better, simplify the whole thing like this:

If exist "\\server\UserData\%username%\." NET USE H: /DELETE /Y
NET USE H: "\\newserver\UserData\%USERNAME%"
Share:
18,590

Related videos on Youtube

Chad
Author by

Chad

Updated on September 18, 2022

Comments

  • Chad
    Chad almost 2 years

    I've written a small batch file to help us with a server migration to remap user directories using GPO.

    However in the batch file I'm having a syntax problem that appears right but it's still failing. Here is what I have so far below.

    If exist "\\server\UserData\%username%"     
    GOTO :UNMAP    
    ELSE    
    NET USE H: \\newserver\UserData\%USERNAME%    
    :UNMAP    
    NET USE H: /DELETE /Y    
    NET USE H: \\newserver\UserData\%USERNAME%
    

    Now when I run it I get the following:

    The syntax of the command is incorrect.
    C:\>if exist "\\server\UserData\userfolder"
    

    Any idea how to resolve this or what I am doing wrong?

  • Chad
    Chad almost 12 years
    Awesome that fixed that line. Now it's barking at my else command. So I tried moving the lower line up below the else as well thinking that would be the same thing but that didn't work.
  • Rex
    Rex almost 12 years
    you don't need the goto line at all. Longneck's script by itself should do what you want it to do. It removes the drive mapping if it's there and then maps the drive you want to the new server.
  • longneck
    longneck almost 12 years
    frankly, you don't even need the if. just blindly delete the h: drive. you're going to remap it on the next line, so who cares if it returns an error?