Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Batch file for loop /D flag not appearing in command line

I've got a small batch file that I want to use to copy a file from one location to many locations that may have different name.

for /D %%f in ("%%localappdata%%\Microsoft\Opc*") do (
    for /D %%x in ("%%f\*") do (copy /y user.config %%x\)
 )

I'm able to get this to run fine in the command line, but if I try and run my batch script instead, this is all that's shown on the command line:

for / %f in ("%localappdata%\Microsoft\Opc*") do (
   for / %x in ("%f\*") do (copy /y user.config %x\ ) 
)

It looks like, for whatever reason, the /D flag is getting changed into just /

I'm rather new to batch scripting, so any help would be greatly appreciated!

like image 356
Darendal Avatar asked May 08 '15 18:05

Darendal


1 Answers

In a batch script: contrary to (correct) doubling the % percent sign in %%f and %%x parameters, do not double % in environment variable names like %localappdata% etc...

for /D %%f in ("%localappdata%\Microsoft\Opc*") do (
    for /D %%x in ("%%f\*") do (copy /y user.config %%x\)
 )

However, that stunning / echoed instead of /D should not affect the for /D command functionality (still searching for an explanation).

like image 108
JosefZ Avatar answered Sep 21 '22 14:09

JosefZ