batch echo output to txt issues

Discussion forum for all Windows batch related topics.

Moderator: DosItHelp

Post Reply
Message
Author
pclarke
Posts: 3
Joined: 16 Jun 2013 13:48

batch echo output to txt issues

#1 Post by pclarke » 16 Jun 2013 14:00

So my code out puts 3 files. 2 .ini and 1.txt The ini's are working just fine. I believe its because they require the text to be in quotes. My settings.txt file needs to be in normal text. I believe my issue is that what I am echoing is looking like code.

Code: Select all

:C1
netsh interface ip set address "Local Area Connection" static 1.1.1.2 255.255.255.0 1.1.1.1 1
netsh interface ip set dns "Local Area Connection" source=static addr=4.2.2.2

echo LAN IP set to Static
echo IP:   1.1.1.2
echo MASK: 255.255.255.0
echo GATE: 1.1.1.1
echo DNS1: 4.2.2.2

echo "IP=1.1.1.1">>idirect.ini
echo "USER=admin">>idirect.ini
echo "ENC=1">>idirect.ini
echo "PASSWORD=1,1,1,1">>idirect.ini
echo "MODEMTYPE=IDIRECT">>idirect.ini
echo "AOTODETECTION=0">>idirect.ini
echo "VERIFY_OPT_FILE_DID=0">>idirect.ini
echo "VERIFY_OPT_FILE_SN=0">>idirect.ini
echo "VERIFY_OPT_FILE_SW_VERSION=0">>idirect.ini
echo "VERIFY_OPT_FILE_ETH_PORT=0">>idirect.ini
echo "VERIFY_OPT_FILE_GPS_INPUT=0">>idirect.ini
echo "VERIFY_OPT_FILE_ODU_RX_DC_PWR=0">>idirect.ini
echo "VERIFY_OPT_FILE_ODU_TX_10_MHZ=0">>idirect.ini
echo "VERIFY_OPT_FILE_GLOBAL_NMS_TIMEOUT=0">>idirect.ini
echo "OPT_FILE_BEAM_TIMEOUT=0">>idirect.ini
xcopy idirect.ini C:\Users\Pat 
del idirect.ini /f

echo "USESERIAL=0">>trackstar.ini
echo "IP=1.1.1.1">>trackstar.ini
echo "PORT=0">>trackstar.ini
echo "COM=0">>trackstar.ini
echo "REFLOCKCODE=0">>trackstar.ini
echo "SNRLOCKCODE=0">>trackstar.ini
echo "BEACONLOCKCODE=0">>trackstar.ini
echo "END=1">>trackstar.ini
xcopy trackstar.ini C:\Users\Pat 
del trackstar.ini /f

echo SSPA_ENABLE=1>>Settings.txt
echo SSPA_USESERIAL=0>>Settings.txt
echo SSPA_IP=1.1.1.1>>Settings.txt
echo SSPA_TYPE=abc>>Settings.txt
echo SSPA_PORT=0>>Settings.txt
echo SSPA_COM_PORT=0>>Settings.txt
echo MC_IP=1.1.1.1>>Settings.txt
echo MC_PORT=0>>Settings.txt
echo MC_ENABLE=1>>Settings.txt
xcopy Settings.txt C:\Users\Pat 
del Settings.txt /f


pause
goto START



my Settings.txt looks like this

Code: Select all

SSPA_ENABLE=
SSPA_IP=1.1.1.1
SSPA_TYPE=abc
SSPA_PORT=0
SSPA_COM_PORT=
MC_IP=1.1.1.1
MC_PORT=0
MC_ENABLE=


it should look like this

Code: Select all

SSPA_ENABLE=1
SSPA_USESERIAL=0
SSPA_IP=1.1.1.1
SSPA_TYPE=abc
SSPA_PORT=0
SSPA_COM_PORT=0
MC_IP=1.1.1.1
MC_PORT=0
MC_ENABLE=1

aGerman
Expert
Posts: 4717
Joined: 22 Jan 2010 18:01
Location: Germany

Re: batch echo output to txt issues

#2 Post by aGerman » 16 Jun 2013 14:15

Write your redirections in an opposed style to avoid that single digits are interpreted as stream identifiers.

Code: Select all

>>Settings.txt echo SSPA_ENABLE=1

Also possible:

Code: Select all

>Settings.txt (
  echo SSPA_ENABLE=1
  echo SSPA_USESERIAL=0
:: etc
)

Regards
aGerman

pclarke
Posts: 3
Joined: 16 Jun 2013 13:48

Re: batch echo output to txt issues

#3 Post by pclarke » 16 Jun 2013 14:23

This works great!!!

Code: Select all

>>Settings.txt echo echo SSPA_ENABLE=1
>>Settings.txt echo SSPA_USESERIAL=0
>>Settings.txt echo SSPA_IP=1.1.1.1
>>Settings.txt echo SSPA_TYPE=abc
>>Settings.txt echo SSPA_PORT=0
>>Settings.txt echo SSPA_COM_PORT=0
>>Settings.txt echo MC_IP=1.1.1.1
>>Settings.txt echo MC_PORT=0
>>Settings.txt echo MC_ENABLE=1
Last edited by pclarke on 16 Jun 2013 14:33, edited 1 time in total.

aGerman
Expert
Posts: 4717
Joined: 22 Jan 2010 18:01
Location: Germany

Re: batch echo output to txt issues

#4 Post by aGerman » 16 Jun 2013 14:27

Sorry my bad. Only 1 echo of course. Changed it above.

pclarke
Posts: 3
Joined: 16 Jun 2013 13:48

Re: batch echo output to txt issues

#5 Post by pclarke » 16 Jun 2013 14:32

Thank you very much for your help!!!! your amazing I was fighting this for hours lol.

Flora
Posts: 5
Joined: 28 Jun 2013 09:18

Re: batch echo output to txt issues

#6 Post by Flora » 04 Jul 2013 01:15

Bumping an old thread just to say thanks to @aGerman
#Godspeed

Aacini
Expert
Posts: 1927
Joined: 06 Dec 2011 22:15
Location: México City, México
Contact:

Re: batch echo output to txt issues

#7 Post by Aacini » 04 Jul 2013 02:46

I want to seize the opportunity to answer this old topic (thanks Flora!)

I frequently use the technique of embed sections of text into a Batch file that must be extracted into a separate file. In order to avoid problems with the last character of the text being a digit and to avoid multiple ECHO commands, I insert the verbatim text enclosed between two lines that works as delimiters and then use a subroutine to extract the desired section. This is my version of the solution to this topic:

Code: Select all

:C1
netsh interface ip set address "Local Area Connection" static 1.1.1.2 255.255.255.0 1.1.1.1 1
netsh interface ip set dns "Local Area Connection" source=static addr=4.2.2.2

echo LAN IP set to Static
echo IP:   1.1.1.2
echo MASK: 255.255.255.0
echo GATE: 1.1.1.1
echo DNS1: 4.2.2.2

call :getResource idirect.ini   > C:\Users\Pat\idirect.ini
call :getResource trackstar.ini > C:\Users\Pat\trackstar.ini 
call :getResource Settings.txt  > C:\Users\Pat\Settings.txt
pause
goto START


<resource id="idirect.ini">
"IP=1.1.1.1"
"USER=admin"
"ENC=1"
"PASSWORD=1,1,1,1"
"MODEMTYPE=IDIRECT"
"AOTODETECTION=0"
"VERIFY_OPT_FILE_DID=0"
"VERIFY_OPT_FILE_SN=0"
"VERIFY_OPT_FILE_SW_VERSION=0"
"VERIFY_OPT_FILE_ETH_PORT=0"
"VERIFY_OPT_FILE_GPS_INPUT=0"
"VERIFY_OPT_FILE_ODU_RX_DC_PWR=0"
"VERIFY_OPT_FILE_ODU_TX_10_MHZ=0"
"VERIFY_OPT_FILE_GLOBAL_NMS_TIMEOUT=0"
"OPT_FILE_BEAM_TIMEOUT=0"
</resource>


<resource id="trackstar.ini">
"USESERIAL=0"
"IP=1.1.1.1"
"PORT=0"
"COM=0"
"REFLOCKCODE=0"
"SNRLOCKCODE=0"
"BEACONLOCKCODE=0"
"END=1"
</resource>


<resource id="Settings.txt">
SSPA_ENABLE=1
SSPA_USESERIAL=0
SSPA_IP=1.1.1.1
SSPA_TYPE=abc
SSPA_PORT=0
SSPA_COM_PORT=0
MC_IP=1.1.1.1
MC_PORT=0
MC_ENABLE=1
</resource>


:getResource resourceId
rem Resource data start format: ^<resource id="resourceId"^>

setlocal EnableDelayedExpansion
set start=
set lines=
for /F "tokens=1,3 delims=:=>" %%a in ('findstr /N "^</*resource" "%~F0"') do (
   if not defined start (
      if "%1" equ "%%~b" set start=%%a
   ) else (
      if not defined lines set /A lines=%%a-start-1
   )
)
set line=0
for /F "skip=%start% tokens=1* delims=]" %%a in ('find /N /V "" ^< "%~F0"') do (
   setlocal DisableDelayedExpansion
   echo(%%b
   endlocal
   set /A line+=1
   if !line! equ %lines% exit /B
)
exit /B


Antonio

Post Reply