Solved

Modify Text File with Batch Script to Create Additional Files Based on Specific Text String in File

Posted on 2014-04-24
4
325 Views
Last Modified: 2014-05-23
I have a text file where I have a defined set of variables that appear in a fixed position in each text record.

The original file location and output location will always be a fixed location: N:\DownloadedFiles\

The data I am evaluating is in positions 18-23 of each row.

If positions 18-23 contain VA8, copy row into a new text file with the following naming convention: VA8_MI186_yyyymmddhhmm.txt (hhmm in military time)

If positions 18-23 contain OH252, copy row into a new text file with the following naming convention: MI186_UPD_OH252_yyyymmdd.txt

If positions 18-23 contain MI3, copy row into a new text file with the following naming convention: MI186_UPD_MI3_yyyymmdd.txt
0
Comment
Question by:sparker1970
  • 2
  • 2
4 Comments
 

Author Comment

by:sparker1970
ID: 40020212
Here is a HelperFile
HelperFile.txt
0
 
LVL 68

Accepted Solution

by:
Qlemo earned 500 total points
ID: 40020382
This is a .cmd approach:
@echo off
setlocal EnableDelayedExpansion

set dt=!date:~-4,4!!date:~-10,2!!date:~-7,2!
set tm=!time:~0,2!!time:~3,2!

pushd N:\DownloadedFiles\
for /F "tokens=* delims=" %%L in (HelperFile.txt) do (
  set token=%%L
  set token=!token:~17,5!
  set target=
  if "!token!" == "  VA8" set target=VA8_MI186_%dt%%tm%.txt
  if "!token!" == "OH252" set target=MI186_UPD_OH252_%dt%.txt
  if "!token!" == "  MI3" set target=MI186_UPD_MI3_%dt%.txt
  if defined target (echo.%%L) >> !target!
)
popd

Open in new window

0
 
LVL 68

Expert Comment

by:Qlemo
ID: 40020503
... and a PowerShell one, with a slightly different algorithm:
set-location N:\DownloadedFiles\

$data = get-content HelperFile.txt

$data | ? { $_.Substring(17,5) -eq '  VA8' } | out-file "VA8_MI186_$(      get-date -format 'yyyyMMddhhmm').txt"
$data | ? { $_.Substring(17,5) -eq 'OH252' } | out-file "MI186_UPD_OH252_$(get-date -format 'yyyyMMdd'    ).txt"
$data | ? { $_.Substring(17,5) -eq '  MI3' } | out-file "MI186_UPD_MI3_$(  get-date -format 'yyyyMMdd'    ).txt"

Open in new window

0
 

Author Closing Comment

by:sparker1970
ID: 40087057
This worked perfectly. Sorry for taking so long to respond. I was out of the office for a few weeks and just getting caught up on everything. I was trying to stick with a basic text/batch file so I did not test the PowerShell solution but some time in the future I may as I just picked up the Windows PowerShell Cookbook...to read in my spare time lol.

Thanks again, worked 100%!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Show hidden user account 7 54
How to make an ADE file by code? 11 79
problems with mysql ODBC Connector and vbscript 4 23
change the windows script file to BAT 10 22
Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

948 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

21 Experts available now in Live!

Get 1:1 Help Now