• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 8036
  • Last Modified:

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
0
saarmstrong
Asked:
saarmstrong
  • 3
  • 2
  • 2
  • +2
1 Solution
 
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
 
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
Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

 
Don ThomsonCommented:
Use another drive letter
0
 
QlemoDeveloperCommented:
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:
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
 
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
 
QlemoDeveloperCommented:
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

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 3
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now