Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

batch file to copy remotly a file

Posted on 2007-11-28
Last Modified: 2008-02-01
i want to replace a file  (Connect.ini) that is stored on C:\Program Files\SIMS\SIMS .net  (note that SIMS .net  is a folder) in a remote computer. The new file ( the one i want to replcalce the existing one with) is stored on the root of my C: (where the script will run from). Here is what i tried:

Please note that %1 is the remote computer name
copy /y c:\Connect.ini  \\%1\C$\Program Files\SIMS\SIMS .net\

I get the following error message for this one:
'The syntax of the command is incorrect.'

rem net use z: \\%1\c$
rem del z:\Program Files\SIMS\SIMS .net\Connect.ini
rem copy c:\Connect.ini z:\Program Files\SIMS\SIMS .net\Connect.ini
rem net use z: /d

I get the following error message for this one:

C:\>net use z: /d
z: was deleted successfully.

C:\>net use z: \\A61-01\c$
The command completed successfully.

C:\>del z:\Program Files\SIMS\SIMS .net\Connect.ini
The system cannot find the path specified.

C:\>copy c:\Connect.ini z:\Program Files\SIMS\SIMS .net\Connect.ini
The syntax of the command is incorrect.

C:\>net use z: /d
There are open files and/or incomplete directory searches pending on the connection to z:.
Is it OK to continue disconnecting and force them closed? (Y/N) [N]:

 Can anyone help please?
Question by:olchs
  • 4
  • 2
LVL 40

Accepted Solution

Richard Quadling earned 500 total points
ID: 20365050
copy /y c:\Connect.ini  "\\%~1\C$\Program Files\SIMS\SIMS .net\"

Expert Comment

ID: 20365070
Firstly, good practice to put all paths in quotations. I can see that you haven't - so it will treat copy /y c:\Connect.ini  \\%1\C$\Program Files\SIMS\SIMS .net\ as:

 copy  file c:\connect.ini to \\%1\c$\Program with parameters  Files\SIMS\SIMS, .net\ and /y
Same with the net use.

Secondly, If run from a batch file you need two percent signs.

copy /y "c:\Connect.ini"  "\\%%1\C$\Program Files\SIMS\SIMS .net\"

Hope that works for you.
LVL 40

Expert Comment

by:Richard Quadling
ID: 20365076
Spaces act as separators on the command line.

program this is parameter number 5


program "this is parameter number 1"

Double quotes are used to embed spaces in parameters.

The same applies to program names.

C:\Program <<< program
Files\SIMS\SIMS <<< parameter 1
.NET\ <<<< parameter 2

rather than "C:\Program Files\SIMS\SIMS .NET\"

The %1 is not quite OK either.

Follow this ...

ECHO 1 = %1
ECHO 2 = %2

Save that as test.bat and run it ...

test C:\Program Files

and then

test "C:\Program Files"

See the difference?

See the problem?


OK. The problem is that I just said you need to use quotes to add spaces.

So, "%1" wraps the first parameter in quotes.

BUT you already wrapped it in quotes to get the space in to start with, so you end up with ...

""C:\Program Files""

The ~ in %~1 removes the quotes, leaving you with ...

"C:\Program Files"

You normally use ~ to strip the quotes from any parameter coming into the script and apply your own as needed.

Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

LVL 40

Expert Comment

by:Richard Quadling
ID: 20365080

You do ___NOT___ need 2 % for command line parameters.

You ONLY need 2 % when dealing with FOR variables.


At the command line ...

FOR %A IN (a b c) DO ECHO %A

But in a bat file ...

FOR %%A IN (a b c) DO ECHO %%A


Expert Comment

ID: 20365104
Yeah I figured he was, I've never seen anyone use variables like that thats not in a for statement. But if not then take head olchs.
LVL 40

Expert Comment

by:Richard Quadling
ID: 20365167
If you think that is bad, try decoding this ...

Pretty obvious when you understand the syntax, but even so, a nightmare for a beginner.
SET UnivDateTokens=1-3 
FOR /F "tokens=1 delims=.:/-, " %%O IN ('DATE /T') DO SET UnivDatePart1=%%O
IF "%UnivDatePart1:~0,1%" GTR "9" SET UnivDateTokens=2-4 
FOR /F "tokens=%UnivDateTokens% delims=.:/-, " %%P in ('DATE /T') DO ( 
	FOR /F "skip=1 tokens=2-4 delims=/-,()." %%S IN ('ECHO.^|DATE') DO ( 
		SET %%S=%%P
		SET %%T=%%Q
		SET %%U=%%R
		SET UnivDatePart1=
		SET UnivDateTokens=

Open in new window


Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We have adopted the strategy to use Computers in Student Labs as the bulletin boards. The same target can be achieved by using a Login Notice feature in Group policy but it’s not as attractive as graphical wallpapers with message which grabs the att…
I have published numerous articles here at Experts Exchange that present programs/scripts written in a language called AutoHotkey. Each of those articles has a brief paragraph describing where to download the product and how to install it. I have al…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question