zensbert
Goto Top

IDs aus Text auslesen und in for-Schleife bearbeiten

Hi,
ich hätte eine Frage. Acronis bietet die Möglichkeit Tasks über CMD zu stoppen; dies ist aber recht umständlich.

Ich muss erst die Task-IDs auslesen über

acrocmd list tasks --output=raw >C:\acronis-tasks.txt

und bekomme dann eine Ausgabe:

 
Voll-Backup	idle	stopped	21.05.2015 21:00:01	05.06.2015 10:38:07	Administrator@Anonymous	A42FA597-59A0-4CDE-8F67-53B4694257DC	13E4C54F-6F6F-466B-95A8-4E0DE2DF0A3B	4. Donnerstag
Voll-Backup	idle	stopped	25.05.2015 21:00:01	05.06.2015 10:38:19	Administrator@Anonymous	CFD9DA4A-DADC-46D4-A567-4FBFF14A0143	977353B4-513C-46DF-A13F-3FAACABDF459	1. Montag
Voll-Backup	idle	stopped	26.05.2015 21:00:01	05.06.2015 10:38:19	Administrator@Anonymous	8D90DDFF-0C15-45ED-9087-7AAB0DBB6152	49206A6C-3255-481E-B149-B89A513ADB71	2. Dienstag
Voll-Backup	idle	succeeded	06.06.2015 21:00:01	06.06.2015 21:34:51	Administrator@Anonymous	9A26492F-9597-4E1F-893F-0142B1A508F5	6B7AF296-652A-4916-A1EA-AE3463C00C4F	6. Vollbackup Samstag
Voll-Backup	idle	stopped	05.06.2015 10:38:06	05.06.2015 10:38:08	Administrator@Anonymous	53A30BF8-1298-4071-BE9C-9D7AFD8AAD9D	408CD60D-1501-4338-A2C6-8E2F96B701CB	3. Mittwoch
Voll-Backup	idle	failed	05.06.2015 21:00:02	06.06.2015 00:52:05	Administrator@Anonymous	D997A7E5-81DC-438F-B207-108C81FB15C6	3DAB880B-48DB-4FD0-88E7-3A9424BBC95A	5. Freitag

The operation completed successfully.


und dann die IDs über den folgenden Befehl stoppen

acrocmd stop task --id=A42FA597-59A0-4CDE-8F67-53B4694257DC
acrocmd stop task --id=13E4C54F-6F6F-466B-95A8-4E0DE2DF0A3B
.
.


Dies ist aufwendig und nicht universell; kann man iwie die Zeichenfolgen/IDs erkennen (sind ja immer gleich lang) und dann iwie in einer FOR Schleife prozessieren? So dass ich in einem klugen Einzeiler alle IDs durchblasen kann? Wenn es nicht geht dann muss ich damit leben, aber ich wollte zumindest mal die Frage hier im Forum stellen..

Danke im Voraus, Thomas

Content-ID: 274026

Url: https://administrator.de/contentid/274026

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

114757
Lösung 114757 08.06.2015 aktualisiert um 15:04:47 Uhr
Goto Top
@echo off
for /f "tokens=9" %%a in ('acrocmd list tasks --Output^=raw ^| findstr /r ".*-.*-.*-.*-.*"') DO acrocmd stop task --id=%%a  
Gruß jodel32
zensbert
zensbert 08.06.2015 aktualisiert um 15:05:43 Uhr
Goto Top
Joa, dacht ich mir.. Klappt gut, muss nur

for /f "tokens=9" %%a in ('acrocmd list tasks --Output^=raw') DO acrocmd stop task --id=%%a  
for /f "tokens=10" %%a in ('acrocmd list tasks --Output^=raw') DO acrocmd stop task --id=%%a  


machen, um alle Tasks zu erwischen.. aber so gehts;

DANKE!
zensbert
zensbert 08.06.2015 um 15:14:36 Uhr
Goto Top
Ah, hast nochmal nacheditiert.. er beendet aber trotz der Vorgabe deines ZeichenfolgeMusters nur die 5 Tasks von der 9ten Stelle, nicht die von der 10ten.
114757
114757 08.06.2015 aktualisiert um 15:16:56 Uhr
Goto Top
Dann hat da ein Taskname vermutlich ein Leerzeichen ...
zensbert
zensbert 08.06.2015 um 15:19:12 Uhr
Goto Top
ja genau,

1. Montag
2. Dienstag
.
.


wenn ich die umbenenne geht es dann?
114757
Lösung 114757 08.06.2015 aktualisiert um 15:40:22 Uhr
Goto Top
Ach so, du brauchst nicht nur die erste GUID der Zeile sondern auch die danach ? Ich dachte jeweils nur die erste GUID jeder Zeile

In dem Fall:
@echo off
for /f "tokens=9,10" %%a in ('acrocmd list tasks --Output^=raw ^| findstr /r ".*-.*-.*-.*-.*"') DO @(  
    acrocmd stop task --id=%%a 
    acrocmd stop task --id=%%b
)
zensbert
zensbert 08.06.2015 um 15:40:18 Uhr
Goto Top
Jopp, das wars. 1000 DANK!