Replace a character in a .txt file in batch.

```html Hello, I would like to know how I could replace a single character in a txt file using a .bat or something... let me explain:
I have a text file containing:

00000000

And I would like to be able to change one of those "0" to a "1" like this:

00100000

The idea is to be able to control each character separately without having to modify all the others.

PS: I was thinking of creating 8 bat files each managing one of the 8 characters...

There you go, I hope someone can find my solution! Thank you in advance, have a great day everyone.

Configuration: Windows XP / Firefox 3.6.4 ```

5 answers

  1. Contributor
    This .bat takes 2 parameters, the position of the character to change and the replacement value
    C:> type lpt.txt 00000000 C:> aa 3 1 C:> type lpt.txt 00100000 C:> aa 5 2 C:> type lpt.txt 00102000 C:> aa 3 0 C:> type lpt.txt 00002000 C:> type aa.bat @echo off set pos=%1 set /a p1=pos-1 set c=%2 setlocal enableDelayedExpansion for /f "tokens=1" %%a in (lpt.txt) do ( set x=%%a set y=!x:~0,%p1%!%c%!x:~%pos%,10! echo !y! > lpt.txt ) C:>
    1
    1. OK thanks for your patience guys impeccable!

      Have a good day everyone.
      0
  2. Contributor
    hello
    we display 2 characters then the X followed by the rest starting from the 4th character, thus we replaced the 3 with X
    C:> set x=1234567890 C:> echo %x:~0,2%X%x:~3,10% 12X4567890 C:>
    0
    1. Thank you very much, Dubcek, for this quick and precise response!! I will try all of that and keep you updated. Thanks again.
      0
      1. Thank you Dubcek, I just tried what you suggested and I can't get it to work, I'm a novice in batch.

        What I would like to know is what it actually results in because I've tried several different syntaxes but it doesn't work.

        Thanks again.
        0
    2. Contributor
      C:> set x=00000000
      C:> set y=%x:~0,2%1%x:~3,10%
      C:> echo %x% & echo %y%
      00000000
      00100000
      C:>
      0
      1. So I'll explain, my file "lpt.txt" is located at the root of my HDD, it contains:

        00000000

        And I would like to create batch files capable of changing each character separately as I mentioned before.

        My problem mainly lies in the syntax of the batch file. If you could clearly show me what is in the .bat file. (Not that your explanation is unclear, but as I said I'm a novice in bat).

        There you go, thank you.

        I hope I was a little clearer.
        0