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

Frage Entwicklung Batch & Shell

Mitglied: corpse2001

corpse2001 (Level 1) - Jetzt verbinden

30.11.2006, aktualisiert 01.12.2006, 5080 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
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Windows Store Apps
gelöst Frage von PeterleBWindows Server11 Kommentare

Gibt es einen Weg, auf Windows Server 2016 Windows Store Apps wie zum Beispiel die HP Smart App zu ...

Microsoft Office
Outlook Cache Mode Frage
Frage von GwaihirMicrosoft Office11 Kommentare

Hallo zusammen, bin gerade neu in der Firma und lerne hier einige neue Dinge kennen. Zum Beispiel, dass die ...

Microsoft
Erfahrungen mit Webcam over RDP gesucht
Frage von DerWoWussteMicrosoft10 Kommentare

Moin Kollegen. Bekanntlich kann man Webcams nur mit Drittanbietersoftware in RDP reinschleifen. Was nutzt Ihr dazu? Wie stabil funktioniert ...