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

For schleife mit 2 befehlen ausführen?

Frage Entwicklung Batch & Shell

Mitglied: 14634

14634 (Level 1)

07.10.2010, aktualisiert 15:27 Uhr, 6654 Aufrufe, 3 Kommentare

HAllo, ich habe folgenden quellcode schnipsel den ich in eine for schleife integrieren will:

for /F %%a IN (XXX.txt) do call psexec.exe \\%%a -c deltemp.bat
set S={ERR} DELETE TEMP %%a ERRORLEVEL is %ERRORLEVEL% &CALL :LOG


hier wird eine XXX.txt genommen die PC namen beinhaltet und mit deltemp.bat bearbeitet.
Dies geht auch soweit sehr gut.
Da es sein kann das einige Rechner aus sind bzw nicht am Netz hängen, habe ich eine Errorlevel ausgabe hinzugefügt.

Problem bei dieser konstalation ist das die erste zeile einmal beim start ausgeführt wird und eben die XXX.txt abarbeitet, die Errorlevel zeile zeigt mir deswegen nur einen PC im Log an da diese auch nur einmal ausgeführt wird aber eben dann nicht weiß das die erste zeile weiter mit XXX.txt arbeitet!

Ich habe gedacht das man hier eine FOR bzw IF schleife einbauen kann, wo beim durchgang der beiden zeilen genau 1 PC mit der deltemp bearbeitet wird und ich deswegen einen sauberen Log bekomme, oder??

kann hier jemand evt helfen eine gescheide IF bzw FOR schleife zu generieren??

die if bzw for formel muss auch quasi wissen, wie viel pc noch in der liste nicht abarbeitet sind...

Vielen Dank
Mitglied: BigWim
07.10.2010 um 16:04 Uhr
ungetestet würde ich so probieren:

01.
for /F %%a IN (XXX.txt) do call :Machwas %%a 
02.
goto :eof 
03.
 
04.
:Machwas 
05.
REM %%a wird zu %1 
06.
ping -n 1 %1 >NUL: 
07.
if %errorlevel% neq 0 ( 
08.
   echo %1 ist aus 
09.
) else ( 
10.
    call psexec.exe \\%%a -c deltemp.bat  
11.
    set S={ERR} DELETE TEMP %%a ERRORLEVEL is %ERRORLEVEL% &CALL :LOG 
12.
13.
goto :eof
Nicht alles als Einzeiler zu machen ist sicherlich eine Geschmacksfrage ...

Markus
Bitte warten ..
Mitglied: 14634
08.10.2010 um 07:53 Uhr
HAllo, danke für deine Hilfe, wenn ich deinen Code ausführe bekomme ich in der Log folgendes:

- ERRORLEVEL 0 %a
- ERRORLEVEL 0 %a
- ERRORLEVEL 0 %a

%a sollte für die Rechnernamen stehen.

Errorlevel 0 kann leider auch nciht sein, weil ich 2 "Tote" rechner hinterlegt habe, damit ich einen Errorlevel bekomme.

wieso stellt er alles auf errorlevel 0 ?!

ich will eben auch das er mit die PC mit errorlevel 0 in den log reinschreibt

edit:

kann es sein das im Code was nicht stimmt, ich bekomme folgende rückmeldung im DOS fenster:

Couldn't access a:
Der Netzwerkpfad wurde nicht gefunden.
Bitte warten ..
Mitglied: BigWim
08.10.2010 um 09:31 Uhr
Zitat von 14634:
kann es sein das im Code was nicht stimmt, ich bekomme folgende rückmeldung im DOS fenster:
Ja, sorry. Mal eben ist nie gut in unserem Bereich

ich habe Deine Zeile natürlich nicht bis zum Ende bearbeitet. Aus %%a wird %1. Der Call-Befehl wirkt wie ein Batch-Aufruf nur mit dem Unterschied, dass keine andere *.cmd aufgerufen wird, sondern eine Subroutine innerhalb der *.cmd. Das Goto :eof bewirkt dann, dass an der aufrufenden Stelle "weiter gemacht" wird.

Also, aus

01.
    call psexec.exe \\%%a -c deltemp.bat  
02.
    set S={ERR} DELETE TEMP %%a ERRORLEVEL is %ERRORLEVEL% &CALL :LOG
wird

01.
    call psexec.exe \\%1 -c deltemp.bat  
02.
    set S={ERR} DELETE TEMP %1 ERRORLEVEL is %ERRORLEVEL% &CALL :LOG

ich will eben auch das er mit die PC mit errorlevel 0 in den log reinschreibt
Ja, das Muster habe ich aus meiner CMD kopiert. Wenn in jedem Fall protokolliert wird, lass das IF ELSE weg, also so:

01.
for /F %%a IN (XXX.txt) do call :Machwas %%a 
02.
goto :eof 
03.
 
04.
:Machwas 
05.
REM %%a wird zu %1 
06.
call psexec.exe \\%1 -c deltemp.bat  
07.
set S={ERR} DELETE TEMP %1 ERRORLEVEL is %ERRORLEVEL% &CALL :LOG 
08.
goto :eof

Markus
Bitte warten ..
Ähnliche Inhalte
Microsoft
gelöst Fehler beim Ausführen eines MSSQL-Triggers mit EXECUTE AS User (1)

Frage von Mesaou zum Thema Microsoft ...

Windows Server
Login Script verzögert ausführen (6)

Frage von Intruder0001 zum Thema Windows Server ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...