Problem mit zähler und Variablen
hallo
habe ein problem mit einer batchdatei ich kann den zähler nicht erhöhen (i)
und weiss nicht wie dann die Variablen ändern soll?
hier mein Code:
set i = 0
set DATUM=%date:~3%
cd\
cd Konfigurationen
mkdir "config_%date%"
cd "config_%date%
REM #ROuterliste# (Router hinzufügen wie Router0 und Zahl vor GOTO ende um 1 erhöhen!)
REM Router0
set "Routername0 = DSL"
set "VPN0 = 192.168.xxx.xxx"
set "PW0 = passwort"
REM Router1
set "Routername1 = DSL2"
set "VPN1 = 192.168.xxx.xxx"
set "PW1 = passwort"
REM #Ende der Routerliste#
:loop
IF %i% == "2" GOTO ende
:nochmal
set Adresse=VPN%i%
set Name=Routername%i%
set Pass=PW%i%
tftp %Adresse% get "%Pass% readscript" "config_%Name%_%date%.lcs"
IF NOT EXIST "c:\Konfigurationen\config_%Name%_%date%.lcs" goto nochmal
set i = i + 1
echo %i%
goto loop
:ende
Pause
danke schonmal für die hilfe
mfg corpse2001
habe ein problem mit einer batchdatei ich kann den zähler nicht erhöhen (i)
und weiss nicht wie dann die Variablen ändern soll?
hier mein Code:
set i = 0
set DATUM=%date:~3%
cd\
cd Konfigurationen
mkdir "config_%date%"
cd "config_%date%
REM #ROuterliste# (Router hinzufügen wie Router0 und Zahl vor GOTO ende um 1 erhöhen!)
REM Router0
set "Routername0 = DSL"
set "VPN0 = 192.168.xxx.xxx"
set "PW0 = passwort"
REM Router1
set "Routername1 = DSL2"
set "VPN1 = 192.168.xxx.xxx"
set "PW1 = passwort"
REM #Ende der Routerliste#
:loop
IF %i% == "2" GOTO ende
:nochmal
set Adresse=VPN%i%
set Name=Routername%i%
set Pass=PW%i%
tftp %Adresse% get "%Pass% readscript" "config_%Name%_%date%.lcs"
IF NOT EXIST "c:\Konfigurationen\config_%Name%_%date%.lcs" goto nochmal
set i = i + 1
echo %i%
goto loop
:ende
Pause
danke schonmal für die hilfe
mfg corpse2001
Please also mark the comments that contributed to the solution of the article
Content-Key: 45719
Url: https://administrator.de/contentid/45719
Printed on: April 27, 2024 at 16:04 o'clock
11 Comments
Latest comment
bitte liebes corpse2001 gewöhne dir an in dem bereich "batch & shell" was da ist wo der biber den mod-hut aufhat in zukunft mit punkt und komma zu schreiben sonst werden meine hilfreichen Antworten im gleichen schreibstil wie deinem abgefasst sein.
Die Antwort ist, dass im Batch oder vielmehr beim SET-Befehl sowohl vorhandene Leerzeichen VOR wie NACH dem Gleichheitszeichen auch eine Rolle spielen.
Beispiel [am CMD-Prompt:]
Also: richte in Deinem Schnipsel den Code so her, dass
- die Leerzeichen zwischen %varname% und Gleichheitszeichen immer rausfliegen.
- die Leerzeichen nach dem Gleichheitszeichen zumindest bei den SET-Anweisungen ohne Parameter "/a" rausfliegen.
Also:
Dann lüpt et.
Gruß
Biber
Die Antwort ist, dass im Batch oder vielmehr beim SET-Befehl sowohl vorhandene Leerzeichen VOR wie NACH dem Gleichheitszeichen auch eine Rolle spielen.
Beispiel [am CMD-Prompt:]
(=12:46:48 D:\temp=)
>set var= Inhalt var
(=14:31:58 D:\temp=)
>set var = Inhalt andere var
(=14:32:09 D:\temp=)
>set var
var= Inhalt var
var = Inhalt andere var
Also: richte in Deinem Schnipsel den Code so her, dass
- die Leerzeichen zwischen %varname% und Gleichheitszeichen immer rausfliegen.
- die Leerzeichen nach dem Gleichheitszeichen zumindest bei den SET-Anweisungen ohne Parameter "/a" rausfliegen.
Also:
Set var1=Inhalt der var1
-oder-
set "var2=Inhalt der var2"
---
- nicht:
set var = inhalt var3 <i><---------------- das ist FALSCH!!</i>
Dann lüpt et.
Gruß
Biber
Moin corpse2001,
es ist ein paar Stellen nicht so ganz erkennbar, was Du nun versuchst in Deinem Codeschnipsel, was ehemalige und was künftige Variablen und Varianten sind...
Okay, so wie ich den Sinn des Schnipsels im Eröffnungsbeitrags und den des Fragments im letzten Posting interpretiere, wäre folgende Änderung ein Schritt in die richtige Richtung.
Die echo 's sind nur zur Demo drin.
Ergebnis ist im wesentlichen die Ausgabe
HTH Biber
es ist ein paar Stellen nicht so ganz erkennbar, was Du nun versuchst in Deinem Codeschnipsel, was ehemalige und was künftige Variablen und Varianten sind...
Okay, so wie ich den Sinn des Schnipsels im Eröffnungsbeitrags und den des Fragments im letzten Posting interpretiere, wäre folgende Änderung ein Schritt in die richtige Richtung.
@echo off & setlocal EnableDelayedExpansion
set /a i = 0
set DATUM=%date:~3%
<b>echo </b> cdcd Konfigurationen
<b>echo </b> mkdir "config_%date%"
<b>echo </b> cd "config_%date%
REM #ROuterliste# (Router hinzufügen wie Router0 und Zahl vor GOTO ende um 1 erhöhen!)
REM Router0
set "Routername0=DSL"
set "VPN0=192.168.xxx.xxx"
set "PW0=passwortPW0"
REM Router1
set "Routername1=DSL2"
set "VPN1=192.168.xxx.yyy"
set "PW1=passwortPW2"
REM #Ende der Routerliste#
:loop
:nochmal
set Adresse=!VPN%i%!
set Name=!Routername%i%!
set Pass=!PW%i%!
<b>echo</b> tftp %Adresse% get "%Pass% readscript" "config_%Name%_%date%.lcs"
REM IF NOT EXIST "c:\Konfigurationen\config_%j%%Name%%j%_%date%.lcs" goto nochmal
set /a i = i+1
IF %i% LSS 2 goto loop
:ende
Pause
Die echo 's sind nur zur Demo drin.
Ergebnis ist im wesentlichen die Ausgabe
>f:\administrator\corpses.bat
tftp 192.168.xxx.xxx get "passwortPW0 readscript" "config_DSL_11.2006.lcs"
tftp 192.168.xxx.yyy get "passwortPW2 readscript" "config_DSL2_11.2006.lcs"
Drücken Sie eine beliebige Taste . . .
HTH Biber