Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Problem mit zähler und Variablen

Mitglied: corpse2001

corpse2001 (Level 1) - Jetzt verbinden

30.11.2006, aktualisiert 01.12.2006, 5087 Aufrufe, 11 Kommentare

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
Mitglied: miniversum
30.11.2006 um 11:14 Uhr
Mit Set /a

miniversum
Bitte warten ..
Mitglied: corpse2001
30.11.2006 um 11:15 Uhr
bei jedem set?
Bitte warten ..
Mitglied: Biber
30.11.2006 um 11:28 Uhr
bei jedem set?
Jepp. Bei jedem Set mit Variablen, mit denen Du rechnen willst..

Gruß
Biber
Bitte warten ..
Mitglied: corpse2001
30.11.2006 um 11:33 Uhr
hallo

leider wird das vorangestellte wort nicht übernommen wenn ich das so mache:

set Name=Routername%i%

ich möchte das dann dann mit dem zähler (i)
%Name% durch Routername1 Routername2 usw. ersetzt wird

was mache ich da falsch
Bitte warten ..
Mitglied: corpse2001
30.11.2006 um 11:54 Uhr
das scheint nun zu funktionieren allerdings werden dann die werte die ich dafür festgelegt habe am anfang nicht richtig oder nur halb übergeben bei Adresse welches die daten von z.B. VPN0 haben soll steht dann nur 192 und bei Pass was PW0 ist dann nur eine 0
wo liegt denn nun da mein fehler das kann ich nicht nachvollziehen
Bitte warten ..
Mitglied: Biber
30.11.2006 um 14:40 Uhr
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:]
01.
(=12:46:48  D:\temp=) 
02.
>set var= Inhalt var 
03.
 
04.
(=14:31:58  D:\temp=) 
05.
>set var = Inhalt andere var 
06.
 
07.
(=14:32:09  D:\temp=) 
08.
>set var 
09.
var= Inhalt var 
10.
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:
01.
Set var1=Inhalt der var1 
02.
-oder- 
03.
set "var2=Inhalt der var2" 
04.
--- 
05.
- nicht: 
06.
set var  =  inhalt var3                    <i><---------------- das ist FALSCH!!</i>

Dann lüpt et.

Gruß
Biber
Bitte warten ..
Mitglied: corpse2001
30.11.2006 um 15:01 Uhr
danke für die antwort!
ich habe jetzt alles am laufen bis auf eine sache.

und zwar werden in dem tftp-befehl falsche informationen reingeschrieben anstatt z.B.für %VPN0% oder %VPN1% die IP reinzuschreiben gibt er mit das so aus:

tftp %VPN0% get "%PW0% readscript" "config_%Routername0%_30.11.2006.lcs"

und so kann der befehl ja nicht ausgeführt werden

hier mein jetziger code wo sonst alles funktioniert ausser das oben beschriebene:

set j=%%%
set DATETIME=%time:~0,8%
set /a 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 %j%%Adresse%%j% get "%j%%Pass%%j% readscript" "config_%j%%Name%%j%_%date%.lcs"
REM IF NOT EXIST "c:\Konfigurationen\config_%j%%Name%%j%_%date%.lcs" goto nochmal
set /a i = i+1
goto loop

:ende
Pause
Bitte warten ..
Mitglied: Biber
30.11.2006 um 18:40 Uhr
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.

01.
@echo off & setlocal EnableDelayedExpansion 
02.
set /a i = 0 
03.
set DATUM=%date:~3% 
04.
<b>echo </b> cdcd Konfigurationen 
05.
<b>echo </b> mkdir "config_%date%" 
06.
<b>echo </b> cd "config_%date% 
07.
 
08.
REM #ROuterliste# (Router hinzufügen wie Router0 und Zahl vor GOTO ende um 1 erhöhen!) 
09.
 
10.
REM Router0 
11.
set "Routername0=DSL" 
12.
set "VPN0=192.168.xxx.xxx" 
13.
set "PW0=passwortPW0" 
14.
 
15.
REM Router1 
16.
set "Routername1=DSL2" 
17.
set "VPN1=192.168.xxx.yyy" 
18.
set "PW1=passwortPW2" 
19.
 
20.
REM #Ende der Routerliste# 
21.
 
22.
:loop 
23.
:nochmal 
24.
set Adresse=!VPN%i%! 
25.
set Name=!Routername%i%! 
26.
set Pass=!PW%i%! 
27.
 
28.
<b>echo</b> tftp %Adresse% get "%Pass% readscript" "config_%Name%_%date%.lcs"  
29.
REM IF NOT EXIST "c:\Konfigurationen\config_%j%%Name%%j%_%date%.lcs" goto nochmal 
30.
set /a i = i+1 
31.
IF %i% LSS 2 goto loop 
32.
 
33.
:ende 
34.
Pause
Die echo 's sind nur zur Demo drin.
Ergebnis ist im wesentlichen die Ausgabe
01.
>f:\administrator\corpses.bat 
02.
tftp 192.168.xxx.xxx get "passwortPW0 readscript" "config_DSL_11.2006.lcs" 
03.
tftp 192.168.xxx.yyy get "passwortPW2 readscript" "config_DSL2_11.2006.lcs" 
04.
Drücken Sie eine beliebige Taste . . .
HTH Biber
Bitte warten ..
Mitglied: corpse2001
01.12.2006 um 09:18 Uhr
danke für die antwort das teste ich nochmal habe das nun aber so gelöst.

cd\
c:
cd config
mkdir "config_%date%"
cd "config_%date%"

For /F "tokens=1,2,*" %%g IN (c:\config\router.lst) DO tftp %%g get "%%h readscript" "%%g-%date:~12,1%%date:~6,2%%date:~3,2%.lcs"
Bitte warten ..
Mitglied: Biber
01.12.2006 um 09:31 Uhr
Moin corpse2001,

lass mich raten: in der c:\config\router.lst steht...?
01.
192.168.xxx.xxx, passwortPW0,DSL 
02.
192.168.xxx.yyy, passwortPW2, DSL2
Ist auf jeden Fall eleganter als die ganzen Daten und Passworte fest verdrahtet im Batch zu halten.

Können wir den Beitrag jetzt schließen?

Grüße
Biber
Bitte warten ..
Mitglied: corpse2001
01.12.2006 um 11:54 Uhr
genau da stehts drin :D

ja der beitrag kann geschlossen werden
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Variable mit mehreren Werten durch eine Zahl teilen - Linux

gelöst Frage von lapvikaBatch & Shell2 Kommentare

Hallo zusammen, einer Variablen werden mehrere Werte (Zahlen) zugewiesen. Ich möchte nun all diese Werte (Zahlen) die der Variablen ...

Batch & Shell

Batch - Random Zahl in Variable und Textdatei abspeichern

gelöst Frage von citroendsvierBatch & Shell8 Kommentare

Ich sitze an einer batch, die u.a. folgende Schritte abarbeiten soll: 1.: Namen einer anderen Batch aus einer Textdatei ...

Batch & Shell

Grosses Variablen Problem ( Batch)

gelöst Frage von clragonBatch & Shell30 Kommentare

Hey Leute. Ich bin auf ein doofes problem gestossen als ich durch variablen loopen wollte, da ich mir die ...

Batch & Shell

Spezielles Batch Problem mit Zahlen 20 + 29

gelöst Frage von narthanBatch & Shell2 Kommentare

Guten Tag Administratoren, ich habe eine Problem mit meinem Batch Script. Die Ausgangslage sieht wie folgt aus: Ein Programm ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 5 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 8 StundenAdministrator.de Feedback10 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...