Discussion forum for all Windows batch related topics.
Moderator: DosItHelp
-
pclarke
- Posts: 3
- Joined: 16 Jun 2013 13:48
#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
#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.
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
#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
#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
#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
#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:
#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