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 Batch assoc auslesen und verarbeiten

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

10.02.2012 um 14:49 Uhr, 2498 Aufrufe, 7 Kommentare

Guten Tag,

leider scheitere ich bei assoc auslesen:
Ich möchte gerne wissen, ob Excel 12 installiert ist. Wenn nicht, soll eine andere Sprungmarke erreicht werden

01.
@echo off 
02.
assoc .xlsx |FIND "12" 
03.
if errorlevel=0 GOTO vorhanden 
04.
if errorlevel=1 GOTO fehlt 
05.
 
06.
:weg 
07.
cls 
08.
echo Excel vorhanden 
09.
Pause 
10.
 
11.
:fehlt 
12.
cls 
13.
echo Excel fehlt 
14.
Pause 
15.
 
16.
echo ende 
17.
Pause
Würde mich über Hilfe freuen!
OKIDOKI
Mitglied: bastla
10.02.2012 um 14:56 Uhr
Hallo OKIDOKI!

Vorweg: Wenn Du unterschiedliche Zweige verwendest, solltest Du deren Ende anders (= mit einem "goto") als nur mit "Pause" gestalten ...

... ansonsten:
01.
assoc .xlsx |FIND "12"||goto :fehlt 
02.
cls 
03.
echo Excel vorhanden 
04.
pause 
05.
goto :ende 
06.
 
07.
:fehlt 
08.
cls 
09.
echo Excel fehlt 
10.
pause 
11.
 
12.
:ende 
13.
echo ende 
14.
pause
... und ganz nebenbei: Wenn Du aus einer CMD-Shell heraus testest, wirst Du "pause" viel weniger oft benötigen ..

Alternativvariante:
01.
cls 
02.
assoc .xlsx |FIND "12" && ( 
03.
    echo Excel vorhanden 
04.
) || ( 
05.
    echo Excel fehlt 
06.
07.
pause 
08.
echo ende 
09.
pause
Grüße
bastla
Bitte warten ..
Mitglied: SlainteMhath
10.02.2012 um 14:58 Uhr
Moin,

evtl. liegt daran, das GOTO und definierte Sprungmarken nicht übereinstimmen?

[...]
GOTO vorhanden
[...]
:weg
[...]
:fehlt

und die errorlevel-Abfrage sieht eigentlich immer so
01.
if %errorlevel%==0 goto ...
aus.

lg,
Slainte

/EDIT: Ah, bastla war mal wieder schneller (und ausführlicher)
Bitte warten ..
Mitglied: Biber
10.02.2012 um 15:00 Uhr
Moin OKIDOKI,

den ErrorLevel musst du immer vom höchsten erwarteten bis zum niedrigsten möglichen (=0 == kein Fehler) prüfen.

Dein Schnipsel könnte durchaus arbeiten wie designed, wenn du die Zeilen 03 und 04 vertauschst.

Grüße
Biber
[Edit] ....diese Rechtssüberholer hier ...*tztztz [Edit]
[Edit2] @bastla
und das unnötige "=" entfernst ...
Zu meiner Überraschung schluckt M$ dieses versehentliche "=" -->
d:\temp>if errorlevel=1 echo zzz 
zzz 
 
d:\temp>if errorlevel=2 echo zzz 
 
d:\temp>if errorlevel=0 echo zzz 
zzz 
 
d:\temp>echo %errorlevel% 
1
[Edit2]
Bitte warten ..
Mitglied: bastla
10.02.2012 um 15:00 Uhr
@SlainteMhath
Es gäbe zwar auch noch die Variante
if errorlevel 1 goto :wherever
(damit wird auf >=1 abgefragt und das funktioniert auch zB innerhalb einer "for"-Schleife), aber ich würde weder noch (siehe oben) verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
10.02.2012 um 15:01 Uhr
@Biber
... wenn du die Zeilen 03 und 04 vertauschst
... und [Edit] auch nicht [/Edit] das [Edit] trotzdem [/Edit] unnötige ([Edit] und auch für mich überraschend folgenlose [/Edit]) "=" entfernst ...

Grüße
bastla
Bitte warten ..
Mitglied: OKIDOKI
10.02.2012 um 20:44 Uhr
hey,

mal kurz nicht am Rechner ...

Ich bin schon wieder sprachlos und dankbar!

Nach bastlas Hinweisen habe ich gleich meine ganzen andren errorlevels überprüf und dann verworfen. Außerdem habe ich mir SlainteMhath Hinweis mit den Sprungmarken noch einmal genauer durchgesehen: man muss echt höllisch aufpassen!
Auch Bibers Vorschlag, mit dem Vertauschen der Zeilen war für mich sehr wichtig. Hier hatte ich auch immer geschludert! Anmerkung: manchmal dachte ich, dass er die Sprungemarken dann irgendwie nicht findet. Das lag dann aber bestimmt nicht an der Reihenfolge der errorlevels, sondern vielmehr an an einer verkorksten batch...
Und schließlich möchte ich noch TimoBeil danken, der bracht mich erst auf die Idee mit dem assoc. Dazu gibt es auch so viele Fragen von Leuten, aber ohne Lösungen in anderen Foren. Nur hier wird einem wirklich - super - geholfen.

Vielen Dank euch allen,
OKIDOKI
(ich hoffe, dass auch anderen Usern solche Beiträge helfen!)
Bitte warten ..
Mitglied: 60730
10.02.2012 um 22:48 Uhr
moin,

mooooment....

Das ist nicht ganz richtig

"Angenommen", es handelt sich um eine Domainumgebung und der abfragende User ist einer mit nem Servergespeicherten Profil.....

Dann greift das Ding nicht wirklich....

Assoc gibt es sowohl 4 Maschinen als auch 4 Benutzer und damit nicht wirklich geeignet.
Einen Ast von
  • "HKLM\SOFTWARE\WOW6432\Microsoft\Office\12.0\Excel"
  • bzw. "HKLM\Software\Microsoft\Office\12.0\Excel"
  • oder "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" - den genauen hab ich nicht im Kopf.
wäre da vielleicht doch der bessere Weg.

Gruß

PS: >nul 2>nul wirst du sicher auch noch brauchen können.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Ini File mit Batch auslesen und weiter verarbeiten

gelöst Frage von ZendaraBatch & Shell2 Kommentare

Hallo, Ich habe ein Problem mit einem Batch File welches mir Variablen aus einem Ini File auslesen und zB. ...

Batch & Shell

Mit batch zeilen auslesen

gelöst Frage von keksegrillerBatch & Shell2 Kommentare

Hallihallo, ich fange gerade an mit batch-Dateien zu arbeiten und komme trotz stundenlangem ausprobieren und googlen leider nicht mehr ...

Batch & Shell

Batch: Textdatei Zeilenweise auslesen

gelöst Frage von CreatorXBatch & Shell2 Kommentare

Hallo, ich weiß, zu dem Thema gibt es schon unzählige Threads. Ich hab auch einiges dazu gefunden und trotzdem ...

Batch & Shell

Per Batch Client auslesen

gelöst Frage von 103148Batch & Shell14 Kommentare

Hallo, ich möchte gerne paar Infos von unseren Clients auslesen. Dazu würde ich folgenden Befehl im Anmelde Script nutzen: ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 8 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 8 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Viren und Trojaner
Neue Avira Management Console Egosecure
Information von OSelbeck vor 1 TagViren und Trojaner1 Kommentar

Hallöchen zusammen, ich weiß nicht, wer von euch noch Avira einsetzt Wir haben ein paar Kunden Avira hatte ja ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
Frage von YellowcakeExchange Server16 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server12 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...