Batch file to remove commas from a different file.

I need to run a command from a batch file that removes commas from a specified file.  Not too bothered what it does with them, either remove completely or replace with another character.

This is to stop user entered commas from messing up my format in a .CSV file.

Many thanks in advance!

Ian
IanWoodAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
sirbountyConnect With a Mentor Commented:
Ok - XP is what I'm using, so this should work for you....

Before (I added a couple of commas to test):
H||Mrs|Elizabeth|Jones|7 wood, Drive|Four, Trees|Sutton|West, Midlands|B74 5RD|01564 353 43334|liz@hotmail.com|Y|Mrs Elizabeth Jones|7 Wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|Mrs Elizabeth Jones|7 wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|VI|1234556578912345678|1102|1204||181927|280804|09:05|850|13|
D|26153|Sensitive, Moisturising Body Lotion - 250ml|400|3|1200|
D|30064|30064|250|1|250|


After:
H||Mrs|Elizabeth|Jones|7 wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|01564 353 43334|liz@hotmail.com|Y|Mrs Elizabeth Jones|7 Wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|Mrs Elizabeth Jones|7 wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|VI|1234556578912345678|1102|1204||181927|280804|09:05|850|13|
D|26153|Sensitive Moisturising Body Lotion - 250ml|400|3|1200|
D|30064|30064|250|1|250|


::-------begin code---------
@echo off
for /f "delims=" %%a in (test.txt) do call :process "%%a"
goto :eof

:process
set strData=%1
set strData=%strData:,=%
for /f "delims=" %%x in (%strData%) do echo %%x >> testnew.txt
::-------end code-----------

Not my prettiest coding, but effective.  Let me know if that will work for you...
0
 
sirbountyCommented:
Munge would probably be the easiest way to achieve this:
http://www.petri.co.il/download_free_reskit_tools.htm

If you're opposed to that idea, can you post a portion of your file along with what operating system you're using?
0
 
IanWoodAuthor Commented:
I don't really want to start using 3rd party uliities to do this if I can help it.

The file is a bog standard text file (seperated by |'s) :-

H||Mrs|Elizabeth|Jones|7 wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|01564 353 43334|liz@hotmail.com|Y|Mrs Elizabeth Jones|7 Wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|Mrs Elizabeth Jones|7 wood Drive|Four Trees|Sutton|West Midlands|B74 5RD|VI|1234556578912345678|1102|1204||181927|280804|09:05|850|13|
D|26153|Sensitive Moisturising Body Lotion - 250ml|400|3|1200|
D|30064|30064|250|1|250|

I'm running XP, but any solution should ideally work on 2000 as well.

Thanks!
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

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.

 
Drew LakeCommented:
I really don't know much about scripting but here is a site:  http://www.easydos.com/dosindex.html

I would think you would have to use the: IF, FIND, and DEL command in one string.  Good Luck and I hope this helps.
0
 
IanWoodAuthor Commented:
SirBounty, That seems to work fine.  one thing, is there anyway to keep the original filename?  

Thanks!
0
 
sirbountyCommented:
If you're reading it line by line, then you'll have to export it into another file (I think munge will allow this).
For the code above though, simply add the following just before the goto :eof line:

if exist testnew.txt del test.txt
ren testnew.txt test.txt
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.