markus8000
Goto Top

Meldungen von aufgerufenem Programm unterdrücken

Ich heisse Markus und bin heute zum ersten Mal hier im Forum. Deshalb mal ein herzliches Hallo zusammen.

Ich überarbeite gerade mein Batch-Programm das folgendes macht:
Es startet TrueCrypt und mappt ein verstecktes Laufwerk (Backup)

"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk3\Partition1 /lm /p "%password%" /q

Dieser code funktioniert eigentlich wunderbar!

Mein Problem:
Windows legt nun beim booten die Harddisk-Nummerierung immer etwas anders fest.
Das heisst heute ist es ...\Device\Harddisk3 morgen ...\Device\Harddisk4 und gestern war es ...\Device\Harddisk1
Dieses Phänomen ist ja bekannt.
Nun muss ich jeden Tag in der Systemverwaltung nachschauen was meine BackupHD für eine Nummer erhalten hat. Dies in meinem Batch programm eingeben und ausführen.
Microsoft hat ;-(

Mein Lösungsansatz:
1 SET tempZahler=-
2 echo %tempZahler%
3 "C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk0\Partition1 /lm /p "%password%" /q
4 if errorlevel 1 (
5 set tempZaehler=0
6 echo %tempZahler%
7 "C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk1\Partition1 /lm /p "%password%" /q
8 pause
9 ) ELSE (
10 SET tempZaehler=kein Fehler!
11 echo %tempZahler%
12 pause
13 )

Nummerierung der Zeile zur Verständlichkeit.
[Edit Biber: und jetzt mal automatisch nummeriert (und vorher manuell de-nummeriert) *g]
 SET tempZahler=-
 echo %tempZahler%
  "C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk0\Partition1 /lm /p "%password%" /q  
  if errorlevel 1 ( 
     set tempZaehler=0
     echo %tempZahler%
     "C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk1\Partition1 /lm /p "%password%" /q   
     pause
      ) ELSE (
     SET tempZaehler=kein Fehler!
    echo %tempZahler% 
    pause
   )
[/Edit Biber]

Die if else Anweisung muss noch ausgebaut werden damit ca. bis Hardsisk9 alles abgefragt wird.
"pause" nur zum testen.


Annahme die BackupHD hat die Nummer 0 -> kein Fehler (so funktioniert es ja)
Annahme die BackupHD hat die Nummer 3 -> Es kommt eine Fehlermeldung

Meine Fragen:

1. Warum wird in der Zeile 6 nochmals ein "-" ausgegeben?
Ich habe ja zuvor die Variable mit 0 definiert.
2. (jetzt komme ich zum Titelinhalt face-smile
Die Anweisung
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk1\Partition1 /lm /p "%password%" /q
gibt mir folgende Fehlermeldung als erstes Zurück:
(Meldung von TrueCrypt)
Warnung: Die Datei / das Laufwerk ist bereits in Verwendung!
......
das ist mir ja klar und auch in Ordnung so. Darum möchte ich diese Fehlermeldung ignorieren.
Also habe ich die Anweisung mit 2^>nul ergänzt
-> "C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk1\Partition1 /lm /p "%password%" /q 2^>nul
Leider passiert nichts. Das heisst die Fehlermeldung erscheint trotzdem.
Warum?

Wenn mir hierbei jemand helfen könnte?

Beste Grüsse
Markus

Content-Key: 164030

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

Printed on: April 16, 2024 at 12:04 o'clock

Mitglied: 60730
60730 Apr 05, 2011 at 20:41:35 (UTC)
Goto Top
moin,

ich will mal nicht so sein...

edit und willkommen...und etwas diät verpasst

 SET /a tempZaehler=1
:start
 echo %tempZaehler%
  "C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk%tempZaehler%\Partition1 /lm /p "%password%" /q  
  if errorlevel 1 ( 
     set /a tempZaehler=+1
     goto start
   )

bzw: etwas eleganter, wenn auch ungetestet...
for /l %%a in (1,1,9) do "C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \Device\Harddisk%%a\Partition1 /lm /p "%password%" /q  
ich würde aber (wenn Adminrechte vorhanden sind) vorher mit fsutil das Laufwerk raussuchen und dann gezielt Truecrypt anwerfen.

Also habe ich die Anweisung mit 2^>nul ergänzt
falsch - >nul 2>nul
Gruß

edit

[Edit Biber: und jetzt mal automatisch nummeriert]
doppelt gemoppelte Arbeit - mag ich ja face-wink
[/edit]
Member: bastla
bastla Apr 05, 2011 at 21:06:25 (UTC)
Goto Top
Hallo Markus8000 und auch von mir ein Willkommen!
1. Warum wird in der Zeile 6 nochmals ein "-" ausgegeben?
Ich habe ja zuvor die Variable mit 0 definiert.
Sie hat auch den Wert 0 - allerdings interessiert das den CMD-Interpreter vorläufig nicht; der sieht sich nämlich (wenn er nicht per "setlocal enabledelayedexpansion" - dazu findest Du hier im Forum eine ganze Menge an Erklärungen - zu einer anderen Vorgangsweise "überredet" wird) nur zu Beginn der Schleife Klammer die Variableninhalte an, und dann erst wieder am Beginn der nächsten Zeile (die gesamte Schleife Klammer wird wie eine einzige, lange Zeile behandelt) ...

Grüße
bastla
Mitglied: 60730
60730 Apr 05, 2011 at 21:10:54 (UTC)
Goto Top
moin Bastla...

TempZahler zaehlt heute nicht, das fehlende e geht aufs Haus...
01. SET tempZahler=-
05. set tempZaehler=0
06. echo %tempZahler%
  • schleifche hatt er ja auch nischdd....

Grüße
Member: Biber
Biber Apr 05, 2011 at 21:14:36 (UTC)
Goto Top
Moin bastla,

- die Variable %tempzahler% wird doch nur einmal gesetzt und sonst nur angezeigt.
- die Variable %tempzaehler% wird zweimal gesetzt und nie angezeigt.

Da wäre eine erweiterte Variablenauflösung doch überdimensioniert.

Grüße
Biber

[Edit] Upps, T-Mo war schneller... [/Edit]
Member: bastla
bastla Apr 05, 2011 at 21:15:47 (UTC)
Goto Top
@t-mo
Hast recht - die Schleife gab's ja erst bei Dir; für die Klammer nach dem "if" gilt aber ohnehin das Gleiche (wenn dann mal die Variavlennamen stimmen werden) ...

[Edit] @Biber: Wenn's aber doch innerhalb der Klammer passieren soll (sinnvoll oder nicht) ... [/Edit]

Grüße
bastla
Member: Markus8000
Markus8000 Apr 05, 2011 at 21:33:35 (UTC)
Goto Top
Hallo TimoBeil

Danke für deine Antwort.

Ja, Adminrechte habe ich.
Ich habe mal die erste Version versucht. Die Schlaufe funktioniert aber endet nicht mehr (Eendlosschleife Ausgabe immer 1.

nul 2>nul funktioniert, allerdings nur für die erste Meldung. Danach werden folgende zwei Meldungen weiterhin ausgegeben:
-> Das Gerät ist nicht bereit.
-> Falls Sie auf ein Laufwerk für Wechselmedien zugreifen möchten, stellen Sie bitte sicher, dass sich ein Wechselmedium in diesem Laufwerk befindet. .....

a) Das Laufwer ist eine HD per USB angeschlossen und im System vorhanden.
b) Ich denke mir, ist ja klar, dass er unter HarddiskXY nichts findet, wenn dort nichts ist.
c) fsutil habe ich folgendermassen versucht.
-> fsutil fsinfo volumeinfo J:
J ist das versteckte Laufwerk, das ich mappen will.
Es kommt folgende Meldung:
Fehler: Auf dem Datenträger befindet sich kein erkanntes Dateisystem. ....
-> Ja klar kennt Windows standardmässig ein TrueCrypt-System nicht.
Weiter bin ich nicht gekommen face-sad
mit
fsutil fsinfo volumeinfo C:
kam was, aber die Harddisk-Nummer habe ich dort auch nicht gefunden.

Markus
Member: Markus8000
Markus8000 Apr 05, 2011 at 21:43:14 (UTC)
Goto Top
Hallo bastla

Jetzt habe ich gerade eine Antwort an TimoBeil geschrieben und gleich festgestellt das ihr schon weiter seid mit antworten und diskutieren face-smile

Also, die Variable TempZaehler war eigentlich nur eine Hilfsvariable für mich um die If else Anweisung zu testen (bis Timo sie elegant umfunktioniert hat).
Set TempZaehler=-
-> gibt mir den Inhalt der Variabel (echo %TempZaehler% (soll = -)
if X
Set TempZaehler=0
-> gibt mir den Inhalt der Variabel (echo %TempZaehler% (soll = 0
else
Set TempZaehler=1
-> gibt mir den Inhalt der Variabel (echo %TempZaehler% (soll = 1
usw.
hat aber eben nicht geklappt und ich weiss nicht warum. D.h. bis du mir die Antwort gegeben hast face-smile. Danke.
Ich werde über dieses Thema noch mehr lesen.
Member: Markus8000
Markus8000 Apr 05, 2011 at 21:44:23 (UTC)
Goto Top
Hallo Biber

Danke für die Formatierung oben.
Ich hab zwar nicht verstanden WIE du das gemacht hast. Aber sieht doch viel besser aus face-smile.

Gruss
Markus
Member: Skyemugen
Skyemugen Apr 06, 2011 at 06:59:43 (UTC)
Goto Top
Zitat von @Markus8000:
Hallo Biber

Danke für die Formatierung oben.
Ich hab zwar nicht verstanden WIE du das gemacht hast. Aber sieht doch viel besser aus face-smile.

Aloha,

beim Verfassen von Beiträgen/Kommentaren gibt es doch extra das Wort Formatierungshilfe, wo du dann u.a. auch die angezeigt bekommst.

greetz André
Member: Markus8000
Markus8000 Apr 06, 2011 at 07:15:23 (UTC)
Goto Top
Hallo André
Ja, habe ich auch festgestellt.
Danke trotzdem für den Hinweis.

Vielleicht hast du noch eine Antwort auf meine Frage?
(Antwort an TimoBeil)

Gruss
Markus
Member: Biber
Biber Apr 06, 2011 at 07:19:41 (UTC)
Goto Top
Moin Markus8000,

Zitat von @Markus8000:
Hallo Biber

Danke für die Formatierung oben.
Ich hab zwar nicht verstanden WIE du das gemacht hast. Aber sieht doch viel besser aus face-smile.
Na ja, mein Plan war eigentlich deine natürliche Neugier zu nutzen...
Ich dachte, du schaust dir deinen Eröffnungsbeitrag (mit "Editieren") an, um meine Formatierungsmassnahmen nachzuvollziehen.

Aber mit dem Link von Skyemugen ist es natürlich professioneller.

Grüße
Biber
Member: Markus8000
Markus8000 Apr 11, 2011 at 21:24:44 (UTC)
Goto Top
Hallo zusammen

Ich möchte das Thema nochmals aufgreifen, da es noch nicht funktioniert.
Deshalb eine Zusammenfassung meiner letzten Frage:

Adminrechte habe ich und ich habe mal die erste Version versucht.
-Die Schlaufe funktioniert aber endet nicht mehr (Eendlosschleife Ausgabe immer 1.

-nul 2>nul funktioniert, allerdings nur für die erste Meldung. Danach werden folgende zwei Meldungen weiterhin ausgegeben:
"Das Gerät ist nicht bereit.
Falls Sie auf ein Laufwerk für Wechselmedien zugreifen möchten, stellen Sie bitte sicher, dass sich ein Wechselmedium in diesem Laufwerk befindet. ....."

Das Laufwer ist eine HD per USB angeschlossen und im System vorhanden.

-fsutil habe ich folgendermassen versucht.
 fsutil fsinfo volumeinfo J:
J ist das versteckte Laufwerk, das ich mappen will.
Es kommt folgende Meldung:
Fehler: Auf dem Datenträger befindet sich kein erkanntes Dateisystem. ....
Weiter bin ich nicht gekommen.
Mit
 fsutil fsinfo volumeinfo C:
kam was, aber die Harddisk-Nummer habe ich dort auch nicht gefunden.

Markus
Mitglied: 60730
60730 Apr 11, 2011 at 22:00:09 (UTC)
Goto Top
moin,

-nul 2>nul funktioniert, allerdings nur für die erste Meldung.
  • muß ja...
Danach werden folgende zwei Meldungen weiterhin ausgegeben:
"Das Gerät ist nicht bereit.
Falls Sie auf ein Laufwerk für Wechselmedien zugreifen möchten, stellen Sie bitte sicher, dass sich ein Wechselmedium in diesem Laufwerk befindet. ....."

Das sollten aber Windows Popups sein, die bekommst du logischerweise mit >nul nicht weg,

Der Tipp mit FSutil war ein Griff ins Blaue gekachelte Zimmer.

Nur ganz ehrlich - mir fehlt da der springende Punkt, ab dem es sich für mich lohnen würde weitere Zeit da reinzustecken und die Zeit dir zu schreiben warum - nehm ich mir...

  • Die Frage (der Überschrift zu urteilen) - die jedem, der den Fred mal findet - ist mehr als erledigt.
  • Es geht um Truecrypt im speziellen - vielleicht opferst du ein paar sekunden und änderst den Titel?
  • Truecrpypt soll eine sichere Sache sein, deswegen ist da ein password hinterlegt.

Deine Batch hat das passwort aber im Klartext von daher führst du das, was Truecrypt eigentlich machen soll - Adabsurdum.

Wenn du das bist jetzt gelesen hast - dann hier ein klitschkokleiner Tipp.

Die Schleife / nicht Schlaufe ist flüssiger als flüssig - nimm einfach den Volume Namen, der ändert sich nicht (außer du änderst Ihn)

"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v \\?\Volume{1aabbccd-1234-5678-90ab-0815321680}\ /lm /p "%password%" /q

Wie der lautet findest du mit montvol raus.

Gruß
Member: Markus8000
Markus8000 Apr 12, 2011 at 10:42:06 (UTC)
Goto Top
Hi TimoBeil

Danke für deinen Tipp mit dem Volumenamen und mountvol.
Hast soweit funktioniert.

Zu deinen Bemerkungen:
1.
Nur ganz ehrlich - mir fehlt da der springende Punkt, ab dem es sich für mich lohnen würde weitere Zeit da reinzustecken
Ich dachte ein Forum sei dazu da, Fragen zu stellen und wenn jemand eine Antwort weiss, gibt er/sie das Wissen weiter. Mindestens habe ich, für meine Antworten in anderen Foren, mich noch nie von jemandem in irgendeiner Form bezahlen lassen. Aber bitte, wie sind den deine Bankverbindungen?

2.
•Die Frage (der Überschrift zu urteilen) - die jedem, der den Fred mal findet - ist mehr als erledigt
Der Titel lautet: "Meldungen von aufgerufenem Programm unterdrücken"
Insofern hast du recht, da offentlichtlich nur die erste Meldung von TrueCrypt kommt.

Ein Beitrag mit allen Fragen und Antworten entwickelt sich sehr sehr oft. Weisst du bestimmt...
Mit einem Titel: "Wie ist der Vorname" und einer gestellten Frage: Wie heisst du den? Kommt eine Antwort James. Es liegt nahe, dass der Fragende jetzt hellhörig wird und weiter Fragezeichen im Kopf hat bzw. sich sein Projekt im Kopf weiterentwickelt. Somit fragt er weiter: Wie ist den dein Nachname? Antwort: Bond.
Leider hat die zweite Frage nichts mehr direkt mit dem Titel zu tun!

Somit ist dieser Punkt ganz und gar nicht erledigt.
Ich weiss jetzt, dass ich mit "nul 2>nul" die erste Meldung eines aufgerufenen Programmes unterdrücken kann.
Was ist mit weiteren Meldungen des aufgeführten Programmes?
Was ist mit weiteren Meldungen, die vom Betriebssystem kommne? (was ja bei mir der Fall ist)

3.
•Es geht um Truecrypt im speziellen - vielleicht opferst du ein paar sekunden und änderst den Titel?
Für wahr, das könnte ich tun.
Dann sucht jemand anders mit dem selben Problem wie ich anfangs hatte (siehe Titel) im Internet und findet unseren Beitrag nicht, weil ich ja den Titel geändert habe!
Also mache ich doch einen neuen Beitrag.
Oder wir lassen das Projekt sich entwickeln.

4.
•Truecrpypt soll eine sichere Sache sein, deswegen ist da ein password hinterlegt.
Deine Batch hat das passwort aber im Klartext von daher führst du das, was Truecrypt eigentlich machen soll - Adabsurdum.
Wer sagt den, dass ich das Passwort in der Batchdatei hinterlegt habe. Das nimmst du nur an!
Könnte doch sein, dass ich es in der Batchdatei blos abfrage und der Benutzer muss es selber eingeben. Also kein Klartext eines Passwortes.
Zugegeben ich habe es nicht explizit erwähnt. Aber, dass ich eine Variablen ("%password%) verwende, hätte ein Hinweis sein können.
Somit kein Reductio ad absurdum.

PS: Schlaufe - Schleife sind Synonyme. Siehe Duden neue Deutsche Rechtschreibung. face-wink
Deshalb erlaube ich mir dies zu schreiben, im Brief, im elektrotechnischen Umfeld und in der Programmierung.

Gruss
Markus
Mitglied: 60730
60730 Apr 12, 2011 at 11:19:36 (UTC)
Goto Top
Salü,

ich machs kurz... (keine Zeit)

Nur ganz ehrlich - mir fehlt da der springende Punkt, ab dem es sich für mich lohnen würde weitere Zeit da reinzustecken

Es ist genauso, wie ich schrub...
"Für mich" wäre ist das kein wirkliches Ding, das ich automatisieren würde.
Dir einen Weg zu nennen, wie man es automatisieren kann - ohne drauf hinzuweisen, was man da eigentlich macht - ist in meinen Augen auch ein Nogo.

Denn "wir" müssen immer dran denken, das was wir schreiben wird auch später von anderen gefunden, die ähnliches vorhaben oder den Wald vor lauter Bäumen nicht sehen.

Und geänderte Titel - da ist die Googleities vom Frank so gut gebaut, die kann das ab. (Hab selber schon ein paar Anleitungen nachträglich umgemünzt)

PS: Schlaufe - Schleife sind Synonyme.

Nimms gelassen nur weil ich einen Segelschein hab und dort eine Schlaufe eine andere bedeutung hat als eine Schleife, müssen wir uns darüber keinen Knoten in den Kopf zimmern oder dem anderen eine Schlinge draus machen.

Gruß