Solved

setting variables for additional processing in batch script

Posted on 2014-02-22
9
228 Views
Last Modified: 2014-02-23
Hi EEE

I have a txt file with the following format:
ServerName\Dir1\file1.pdf newfile1_test.txt newfile1 n
ServerName\Dir2\file2.pdf bestfile2_test.txt bestfile2 b

etc

I want to write a batch script that does the following:

1. Read each line from the text file for a round of processing
   1.1 Store each of the four strings of the line into 4 vars  - source , destfile, destfolder, destpparentfolder
    1.2  Check if destparentfolder exists on the C:/ of server2.If it doesn't, create it.
        1.3 Check if destfolder exists under C:/destparentfolder. If it doesn't, create it.
          1.4 Put the destfile in the C:/destparentfolder/destfolder.
0
Comment
Question by:LuckyLucks
9 Comments
 

Author Comment

by:LuckyLucks
Comment Utility
In our example above, ServerName\Dir1\file1.pdf will be stored under C:/n/newfile1 as newfile1_test.txt
0
 
LVL 28

Accepted Solution

by:
Bill Bach earned 475 total points
Comment Utility
It is not clear it you want to write a batch script and you have a specific question, or if you want someone to write the entire batch script for you.  In any event, this script should do it:

FOR /F "tokens=* delims=" %%x in (input.txt) DO call :doit %%x
exit

:doit
if not exist C:\%4 MD C:\%4
if not exist C:\%4\%3 MD C:\%4\%3
copy %1 C:\%4\%3\%2


It will read the INPUT.TXT file and call DOIT for each line of the source file, which then do each of the three steps you asked for.
0
 
LVL 45

Expert Comment

by:aikimark
Comment Utility
1. I think you might get a simpler solution using xcopy or robocopy, since they are capable of creating the destination paths they need.

2. I do not understand the control statements from your posted example and description.
0
 

Author Comment

by:LuckyLucks
Comment Utility
Bill, How do I get rid of the overwrite and the is the file a file or directory (when no overwrite)?
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 28

Expert Comment

by:Bill Bach
Comment Utility
I figured that the batch file part was the hard part, and that you'd know how to use the COPY command.  The help screen for the COPY command comes in handy here:

 /Y           Suppresses prompting to confirm you want to overwrite an existing destination file.

The switch /Y may be preset in the COPYCMD environment variable. This may be overridden with /-Y on the command line.  Default is to prompt on overwrites unless COPY command is being executed from within a batch script.


So, add the "/Y" switch after "COPY" to avoid the prompt.  You can also use XCOPY, RoboCopy, or a host of other command-line copy tools.  See each tool's specific command line options for properly using it.
0
 
LVL 51

Assisted Solution

by:Bill Prew
Bill Prew earned 25 total points
Comment Utility
Ne real need for a subroutine here, so just to show a slightly more compact approach:

@echo off

set ControlFile=c:\temp\control.txt

for /f "usebackq tokens=1-4" %%A in ("%ControlFile%") do (
  if not exist c:\%%D\ md c:\%%D
  if not exist c:\%%D\%%C\ md c:\%%D\%%C
  copy /Y %%A c:\%%D\%%C\%%B
)

Open in new window

~bp
0
 

Author Closing Comment

by:LuckyLucks
Comment Utility
Thank you all.
0
 

Author Comment

by:LuckyLucks
Comment Utility
With a /Y I still get - Does C:\a\abc\abcfile1.pdf specify a file name or directory name on the target <F=file, D=directory>?
0
 
LVL 28

Expert Comment

by:Bill Bach
Comment Utility
Switch to XCOPY, and thay should go away.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

The canonical version of this article is on my web site here: http://iconoun.com/articles/collisions/ A companion presentation is available here: http://iconoun.com/articles/collisions/Unicode_Presentation.pdf
The System Center Operations Manager 2012, known as SCOM, is a part of the Microsoft system center product that provides the user with infrastructure monitoring and application performance monitoring. SCOM monitors:   Windows or UNIX/LinuxNetwo…
The viewer will learn how to simulate a series of sales calls dependent on a single skill level and learn how to simulate a series of sales calls dependent on two skill levels. Simulating Independent Sales Calls: Enter .75 into cell C2 – “skill leve…
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …

762 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

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now