Discussion forum for all Windows batch related topics.
Moderator: DosItHelp
-
Birage
- Posts: 7
- Joined: 17 Feb 2019 08:32
#1
Post
by Birage » 17 Feb 2019 08:39
As titled, the first read from the file always fails, as the displayed output will be "ECHO is off." Subsequent reads will be fine, as the IP address in IP.txt file will be displayed.
Code: Select all
@echo off
for /F %%A in (C:\Users\user1\Desktop\IP.txt) do (
set F=%%A
echo %F%
)
Sample output when script is run 3x:
ECHO is off.
192.168.1.1
192.168.1.1
-
Squashman
- Expert
- Posts: 4486
- Joined: 23 Dec 2011 13:59
#2
Post
by Squashman » 17 Feb 2019 10:48
Environmental variables that are created and need to be referenced in a parentheses code block need to use delayed expansion.
Code: Select all
@echo off
setlocal enabledelayedexpansion
for /F %%A in (C:\Users\user1\Desktop\IP.txt) do (
set F=%%A
echo !F!
)
-
elzooilogico
- Posts: 128
- Joined: 23 May 2016 15:39
- Location: Spain
#3
Post
by elzooilogico » 17 Feb 2019 13:42
and more over, here simply
but, of course, details are not explicit
-
Birage
- Posts: 7
- Joined: 17 Feb 2019 08:32
#4
Post
by Birage » 17 Feb 2019 20:34
Thanks a lot for the tip guys ! setlocal enabledelayedexpansion did the trick.