I am getting "CMD.EXE was started with the above path as the current directory...

Hi All,

I am trying to implement a script which simply copies from a file from a network location to user's computers. the script is simply like this:

@echo off
copy \\server1\share1\file c:\users\user1\desktop\

but when running it the script runs with the following issue:
 "CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to windows directory"

I have windows server 2003.

Please advise,

Thank you
saarmstrongAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Steve KnightConnect With a Mentor IT ConsultancyCommented:
Ok.  This is beause you ran the batch file from a UNC share, i.e. \\server\share\whatever.cmd and is no consequence except that the current directory will be c:\windows\system32 or whatever.

Options are:

1. Use a fully qualified copy command like you are anyway so it should work.
2. You can get the filename and path of the batch file using the %~0 variable, i.e.

set mydir=%~dp0
e.g.

@echo off
cls
set mydir=%~dp0
echo You are running %~nx0 from %~dp0.  Current dir is %cd%
copy "%mydir%\myfile.txt" c:\wherever

Open in new window


3. Having got above dir you can use it as part of a copy to get from the same dir as the batch file, or map a drive.  You can "map" a drive using Pushd and Popd and it will map a temporary drive letter, do the job then remove it, e.g.

@echo off
cls
set mydir=%~dp0
echo You are running %~nx0 from %~dp0.  Current dir is %cd%
PUSHD "%mydir%"
  echo now the current dir is %cd%
  copy myfile.txt c:\wherever
POPD

Open in new window


The echo bits are just for info. so you can see where the paths change etc.

Steve
0
 
Don ThomsonCommented:
try using the following"

@Echo off
net use z: \\server1\share1
copy z:file c:\users1\desktop
net use z: /delete
0
 
saarmstrongAuthor Commented:
thank you,
what if the drive is already in use?
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
CITG_CarlCommented:
Try using robocopy scripts rather than copy in cmd.

script is:

robocopy "SOURCE PATH" "DESTINATION PATH" /copyall /mir

http://en.wikipedia.org/wiki/Robocopy
0
 
Don ThomsonCommented:
Use another drive letter
0
 
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
The copy with UNC paths works fine. The message you get only says that the current working directory for the script is not settable, because you are calling the batch from a UNC path. As long as you do not rely on the current directory, i.e. always use absolute paths instead of relative ones, there is no issue (with exception of that distracting message).
0
 
Steve KnightIT ConsultancyCommented:
And BTW if you are not aware the current user desktop directory should normally be:

"%userprofile%\desktop"  so you an use that as the destination in your copy if wanted.

Steve
0
 
Steve KnightIT ConsultancyCommented:
Thanks, hope it helped?

Steve
0
 
QlemoBatchelor, Developer and EE Topic AdvisorCommented:
Why that message is print out, and whether it matters, was mentioned by me first. Steve posted only seconds after me, and that is considered to be "at the same time". The added info was informative, but not relevant for the question, so I cannot see why Steve got all the points.
If Experts post similar contents within a few minutes, it is common to accept all such posts.

Could you please explain why http:#a39194485 is "the answer" here?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.