Batch - überprüfen, ob Speicherkarte schreibgeschützt ist
Hallo Leute,
ich habe aktuell ein Problem, bei dem ich nicht so recht weiter komme.
Ich habe mir einen Nettop zusammengebaut, welcher mittels einem Batch-Script automatisch bei einlegen einer Speicherkarte die darauf enthaltenen Bilder auf ein Netzlaufwerk verschiebt. Soweit alles gut. Ich habe jetzt allerdings das Problem, dass die eingesteckten Speicherkarten teilweise schreibgeschützt sind (weil hardwaremäßig der kleine Hebel an der SD-Speicherkarte auf "lock" gestellt ist). Die geschieht teilweise unbeabsichticht. Folglich kann ich in diesem Zustand die Bilder nicht von der Karte entfernen.
Ich muss nun eine Möglichkeit finden, zu überprüfen, ob die Karte gelockt ist - oder eben nicht. Das Problem das ich habe ist, sobald ich schreibend auf die Karte zugreifen will, erscheind eine WINDOWS-MELDUNG --> Der Datenträger ist schreibgeschützt und kann nicht beschrieben werden.... <--
Das große Problem ist, dass sich diese Meldung leider nicht in der Konsole befindet und es nun sehr schwierig wird, diese zu bestätigen.
Zum testen, ob ich die Daten verschieben kann erstelle ich temporär einen Ordner. Klappt dies, so lösche ich ihn wieder und kann mir sicher sein, dass ich die Bilder verschieben kann. Leider klappt die Anpassung der Ausgabe im Fehlerfall nicht, da es sich eben um eine Windows-Meldung handelt.
Mit folgendem Script kann man die Dateiattribute auslesen:
Leider bekomme ich - unabhängig von der Stellung des Lock-Hebels - immer Read-Write zurück.
Habt ihr eine Idee wie ich
1. Die Windows Ausgabe unterbinden,
2. Automatisch auf den "Abbrechen"-Button der Meldung zugreifen oder
3. (meines erachtens die schönste Mehtode) auslesen, ob die Speicherkarte schreibgeschützt ist.
Mir fällt nichts mehr ein.
Viele Grüße
Breppe
ich habe aktuell ein Problem, bei dem ich nicht so recht weiter komme.
Ich habe mir einen Nettop zusammengebaut, welcher mittels einem Batch-Script automatisch bei einlegen einer Speicherkarte die darauf enthaltenen Bilder auf ein Netzlaufwerk verschiebt. Soweit alles gut. Ich habe jetzt allerdings das Problem, dass die eingesteckten Speicherkarten teilweise schreibgeschützt sind (weil hardwaremäßig der kleine Hebel an der SD-Speicherkarte auf "lock" gestellt ist). Die geschieht teilweise unbeabsichticht. Folglich kann ich in diesem Zustand die Bilder nicht von der Karte entfernen.
Ich muss nun eine Möglichkeit finden, zu überprüfen, ob die Karte gelockt ist - oder eben nicht. Das Problem das ich habe ist, sobald ich schreibend auf die Karte zugreifen will, erscheind eine WINDOWS-MELDUNG --> Der Datenträger ist schreibgeschützt und kann nicht beschrieben werden.... <--
Das große Problem ist, dass sich diese Meldung leider nicht in der Konsole befindet und es nun sehr schwierig wird, diese zu bestätigen.
Zum testen, ob ich die Daten verschieben kann erstelle ich temporär einen Ordner. Klappt dies, so lösche ich ihn wieder und kann mir sicher sein, dass ich die Bilder verschieben kann. Leider klappt die Anpassung der Ausgabe im Fehlerfall nicht, da es sich eben um eine Windows-Meldung handelt.
Mit folgendem Script kann man die Dateiattribute auslesen:
@echo OFF
SETLOCAL enableextensions enabledelayedexpansion
set INPUT=E:\ReferenceFile.txt
for %%F in (%INPUT%) do (
set ATTRIBS=%%~aF
set CURR_FILE=%%~nxF
set READ_ATTRIB=!ATTRIBS:~1,1!
@echo File: !CURR_FILE!
@echo Attributes: !ATTRIBS!
@echo Read attribute set to: !READ_ATTRIB!
if !READ_ATTRIB!==- (
@echo !CURR_FILE! is read-write
) else (
@echo !CURR_FILE! is read only
)
@echo.
)
pause
Leider bekomme ich - unabhängig von der Stellung des Lock-Hebels - immer Read-Write zurück.
Habt ihr eine Idee wie ich
1. Die Windows Ausgabe unterbinden,
2. Automatisch auf den "Abbrechen"-Button der Meldung zugreifen oder
3. (meines erachtens die schönste Mehtode) auslesen, ob die Speicherkarte schreibgeschützt ist.
Mir fällt nichts mehr ein.
Viele Grüße
Breppe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 252113
Url: https://administrator.de/contentid/252113
Ausgedruckt am: 05.11.2024 um 18:11 Uhr
4 Kommentare
Neuester Kommentar
Zitat von @breppe:
Hallo AnkhMorpork,
erstmal danke für deine Antwort! Leider hab ich aber gerade feststellen müssen, dass diese Abfrage nicht für
Speicherkarten gilt.
Egal, ob ich eine Speicherkarte eingesteckt habe oder nicht - in meinem Fall findet das Tool jedesmal 9 instanzen. Somit kann ich
diesen Weg leider nicht gehen.
Noch andere Ideen?
Viele Grüße
Breppe
Hallo AnkhMorpork,
erstmal danke für deine Antwort! Leider hab ich aber gerade feststellen müssen, dass diese Abfrage nicht für
Speicherkarten gilt.
Egal, ob ich eine Speicherkarte eingesteckt habe oder nicht - in meinem Fall findet das Tool jedesmal 9 instanzen. Somit kann ich
diesen Weg leider nicht gehen.
Noch andere Ideen?
Viele Grüße
Breppe
Hi,
das hatte ich befürchtet. Habe auch noch einige andere Sachen abgeleuchtet, aber leider keine Chance. Für's Erste ist mein Pulver verschossen ... sorry.
Wenn du selber suchen willst:
Wbemtest.exe in der Konsole starten
"Verbinden"
root\cimv2 (ist als Standard in der Powershell 3.0 eingestellt)
"Verbinden"
"Klassen aufzählen"
"Rekursiv für alle Klassen"
OK
Und dann suchen ... suchen ... suchen ...
Gruß und good luck!
ankh