We help IT Professionals succeed at work.

How do I include blank lines in a for /F statement

brs5tettba
brs5tettba asked
on
1,193 Views
Last Modified: 2012-05-06
I am trying to copy one file to another, replacing a particular bit of text.  The original text has blank lines and lines beginning with semicolons, all of which I want to keep.  How can I accomplish this?  This code is what I have so far, but it ignores blank lines.

Thanks!!
for /F "eol= tokens=1-2 delims=" %%x in (orig.ini) do (
  for /F "eol= tokens=1-6 delims=" %%I in ("%%x") do (
    IF %%I==TEXT1 (
      echo TEXT1=NEWVALUE>>"new.ini"
    ) ELSE (
      echo %%x>>"new.ini"
    )
  )
)

Open in new window

Comment
Watch Question

Top Expert 2009
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
I used your suggestion but put the blank case first (if "%%y" == ""), and that fixed it for me.  Creative answer, thank you!

for /F "tokens=1,* delims=]" %%x in ('type orig.ini ^| find /v /n ""') do (
    if "%%y" == "" (
        echo.>>"new.ini"
    ) ELSE (
        IF %%y==TEXT1 (
            echo TEXT1=NEWVALUE>>"new.ini"
        ) ELSE (
            echo %%y>>"new.ini"
        )
    )
)

Open in new window

Top Expert 2009

Commented:
OK. Great.
Top Expert 2009

Commented:
Another trick I picked up here is to create the new.ini file like this.

I think this should work with your script.

This way you don't need to delete the previous new.ini if one already exist.
ECHO OFF
(for /F "tokens=1,* delims=]" %%x in ('type orig.ini ^| find /v /n ""') do (
    if "%%y" == "" (
        echo.
    ) ELSE (
        IF %%y==TEXT1 (
            echo TEXT1=NEWVALUE
        ) ELSE (
            echo %%y
        )
    )
))>"new.ini"

Open in new window

Commented:
AmazingTech

EXCELLENT !!!!!

I have been pulling my hair out for the past ..... hours trying to find a solution to this very problem.

You are the KING!!
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.