Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Zahl am Ende einer Variable hochzählen und dann neu befüllen

Frage Entwicklung Batch & Shell

Mitglied: el3ment

el3ment (Level 1) - Jetzt verbinden

14.06.2012 um 12:20 Uhr, 3512 Aufrufe, 6 Kommentare

Hallo, ich möchte mit der Batch Datei auf mehreren Rechnern prüfen ob es eine bestimmte Datei gibt.
Dabei habe ich das Problem, dass die Variable "rechner" immer nur rechner_1, rechner_2 usw. ist und nicht der rechnername welcher oben definiert ist. ist denke ich nichts großes aber ich komme einfach nicht darauf.

01.
@echo off 
02.
set count=1 
03.
set rechneranzahl=4 
04.
 
05.
set dateipfad=c$\Programme\sap\saplogon.ini 
06.
set rechner_1=rechnername_bli 
07.
set rechner_2=rechnername_bla 
08.
set rechner_3=rechnername_blubb 
09.
 
10.
 
11.
:loop 
12.
set rechner=rechner_%count% 
13.
 
14.
IF EXIST "\\%rechner%\%dateipfad%" (echo %time%: %rechner%: Datei vorhanden  >> c:\temp\log.log) ELSE (echo %time%: %rechner%: Datei nicht vorhanden >> c:\temp\log.log) 
15.
 
16.
set /a COUNT=%COUNT%+1 
17.
if (%COUNT%) == (%rechneranzahl%) goto END 
18.
goto loop 
19.
 
20.
 
21.
:end
Mitglied: bastla
14.06.2012, aktualisiert um 13:24 Uhr
Hallo el3ment und willkommen im Forum!

Versuch mal folgende Zeile 12:
call set "rechner=%%rechner_%count%%%"
Außerdem genügt als Zeile 16
set /a count+=1
Grüße
bastla
Bitte warten ..
Mitglied: el3ment
14.06.2012, aktualisiert um 14:47 Uhr
vielen dank, allerdings wird so auch nur %rechner_1% ausgegeben.

danke für den hinweis!
Bitte warten ..
Mitglied: bastla
14.06.2012, aktualisiert um 15:37 Uhr
Hallo el3ment!

Kann ich nicht nachvollziehen ...

Gemeint hatte ich jedenfalls (noch leicht adaptiert):
01.
@echo off & setlocal 
02.
set /a count=1 
03.
set /a arechneranzahl=3 
04.
 
05.
set "dateipfad=c$\Programme\sap\saplogon.ini" 
06.
set "rechner_1=rechnername_bli" 
07.
set "rechner_2=rechnername_bla" 
08.
set "rechner_3=rechnername_blubb" 
09.
 
10.
 
11.
:loop 
12.
call set "rechner=%%rechner_%count%%%" 
13.
 
14.
IF EXIST "\\%rechner%\%dateipfad%" (echo %time%: %rechner%: Datei vorhanden  >> c:\temp\log.log) ELSE (echo %time%: %rechner%: Datei nicht vorhanden >> c:\temp\log.log) 
15.
 
16.
set /a count+=1 
17.
if %count% leq %rechneranzahl% goto :loop
Grüße
bastla
Bitte warten ..
Mitglied: el3ment
14.06.2012 um 15:40 Uhr
hatte den call Befehl nicht übernommen, der war es wohl!

Klasse, funktionier!

Vielen Dank!!!!
Bitte warten ..
Mitglied: bastla
14.06.2012, aktualisiert um 15:49 Uhr
Hallo el3ment!

Freut mich ...

BTW: Von diesem "Pseudo-Array" mit indizierten Variablen halte ich übrigens eher wenig - das ließe sich (da ja ohnehin alle Rechner durchlaufen werden sollen) mit einer "for"-Schleife eleganter lösen, wobei die Rechner entweder in einer eigenen Textdatei aufgelistet werden oder (im Stil von Ur-Basic-DATA-Zeilen) auch im Batch selbst stehen könnten:
01.
@echo off & setlocal 
02.
set "dateipfad=c$\Programme\sap\saplogon.ini" 
03.
set "log=c:\temp\log.log" 
04.
 
05.
::DATA rechnername_bli 
06.
::DATA rechnername_bla 
07.
::DATA rechnername_blubb 
08.
 
09.
for /f "tokens=1*" %%i in ('findstr /b "::DATA" "%~f0"') do call :ProcessComputer "%%j" 
10.
goto :eof 
11.
 
12.
:ProcessComputer 
13.
(if  exist "\\%~1\%dateipfad%" ( 
14.
    echo %time%: %rechner%: Datei vorhanden 
15.
) ELSE ( 
16.
    echo %time%: %rechner%: Datei nicht vorhanden 
17.
))>>"%log%" 
18.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: el3ment
14.06.2012 um 16:07 Uhr
Wow, bin begeistert!

Habe davon ehrlich gesagt keine Ahnung, wollte einfach nur schnell ein kleines Script haben und nich manuel auf jeden Rechner einzeln schauen... :D

Das sieht natürlich professionell aus...
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Selected Gridview Value in Variable schreiben (4)

Frage von reissaus73 zum Thema Batch & Shell ...

Server-Hardware
gelöst Domäne neu einrichten (5)

Frage von DerNeueITler zum Thema Server-Hardware ...

Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...