Zum Inhalt springen

Batchdatei - Schreibschutz entfernen ..


zero61

Empfohlene Beiträge

Hallo zusammen,

Brauche eine Batchdatei - es sind beliebig viele Dateien dort aufgelistet - in der einige einen Schreibschutz haben und einige wiederrum nicht.

Bei den Dateien welche einen Schreibschutz (war glaub irgendwas mit attrib -r um den Schreibschutz in der CMD zu entfernen), soll dieser entfernt werden und mir diese in der CMD ausgeben oder in eine txt-Datei schreiben.

Danach bearbeite ich die Dateien und kann auf diese wieder den Schreibschutz setzen (wie das funktioniert, weiss ich allerdings :D )

Ist sowas überhaupt mit einer Batch möglich?

Link zu diesem Kommentar
Auf anderen Seiten teilen

das auflisten funktioniert mit dir

dir /A:R *.* >>liste.txt

listet alle Dateien mit schreibschutz auf und schreibt die Ausgabe in die Datei liste.txt

Dann diesen Dateien den schreibschutz entfernen: attrib -r, bearbeiten und hinterher wieder setzen: attrib +r

Gruß

Enno

Link zu diesem Kommentar
Auf anderen Seiten teilen

Um ein Missverständnis auszuschließen:

Du hast eine Textdatei mit Pfaden zu Dateien als Inhalt. Den Pfad der Datei möchtest du auflesen und mittels einem Batchsrkipt das Attribut entfernt?

Wenn das so ist, brauchst du eine For-Schleife, die für jeden Datensatz in der Textdatei den entsprechenden Attributbefehl ausführt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja habe eine entsprechende txt Datei wenn ich die Pfade+Dateien aus Excel dort rein kopiere.

So und wie schon gesagt brauch ich dann eine for Schleife die mir überprüft ob ein Schreibschutz drin ist oder nicht. Wenn Schreibschutz = ja, dann soll er diesen entfernen und mir diese in eine seperate txt schreiben (also den Pfad+Datei).

Wie muss aber nun die for Schleife aussehen?:eek

Link zu diesem Kommentar
Auf anderen Seiten teilen

FOR /F "usebackq" %i IN (´DIR C:\ /B/S/AR´) DO ATTRIB -r %i

Damit könntest den Schreibschutz von allen Dateien entfernen.

:confused:

Mit der Liste der Dateien (*.TXT) sollte folgendes gehn:

FOR /F "usebackq" %i IN (`TYPE LISTE.TXT`) DO ATTRIB -r %i

Voraussetzung dafür is eben, dass in der TXT-Datei der komplette Pfad aufgelistet is.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...
Da du anscheinen kein Ehrgeiz hast, hier ist schon mal ein Anfang:


for /F "tokens=2-3 delims= " %i in (liste.txt) do @echo %i %j

Jetzt musst du nur noch analysieren, wie du die Zeilen mit dem "R" filtern kannst.

Sry, was hat das mit Ehrgeiz zu tun?! Ich habe von for-Schleifen kein blaßen Schimmer. Und selbst deine Antwort ist für mich chinesisch :(

Dennoch danke für deine Antwort!

FOR /F "usebackq" %i IN (´DIR C:\ /B/S/AR´) DO ATTRIB -r %i

Damit könntest den Schreibschutz von allen Dateien entfernen.

:confused:

Mit der Liste der Dateien (*.TXT) sollte folgendes gehn:

FOR /F "usebackq" %i IN (`TYPE LISTE.TXT`) DO ATTRIB -r %i

Voraussetzung dafür is eben, dass in der TXT-Datei der komplette Pfad aufgelistet is.

Auch hier Danke für die Antwort. Könntest du mir die zweite for-Schleife genauer erläutern? Wäre super nett!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sry, was hat das mit Ehrgeiz zu tun?! Ich habe von for-Schleifen kein blaßen Schimmer. Und selbst deine Antwort ist für mich chinesisch :(

Dennoch danke für deine Antwort!

Auch hier Danke für die Antwort. Könntest du mir die zweite for-Schleife genauer erläutern? Wäre super nett!

Das Attribut "usebackq" bedeutet, das alles was innerhalb von ` steht als Befehl angesehen wird.

Die Schleife gibt dir per TYPE die Textdatei zeilenweise aus und für jede Zeile führt er den Befehl "ATTRIB -r %i" aus, wobei %i der vollständige Dateiname aus der Textdatei is.

Alles was du also benötigst is eine Textdatei die so ausschaut:


C:\BLABLA\Datei1.exe

C:\BLABLUB\XYZ.jpg

D:\MIRFÄLLTNIXMEHREIN\123.dat

(So ne Liste kriegste ja leicht mit DIR /B /S aufs gewünschte Verzeichnis)

Somit führt dir der Batch folgende Befehle aus:

ATTRIB -R C:\BLABLA\Datei1.exe

ATTRIB -R C:\BLABLUB\XYZ.jpg

ATTRIB -R D:\MIRFÄLLTNIXMEHREIN\123.dat

Folge -> Schreibschutz auf den Dateien entfernt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Müsste eigentlich so gehn

FOR /F "usebackq" %i IN (`TYPE LISTE.TXT`) DO ATTRIB %i|FINDSTR "^.....R">>C:\DATEIEN.TXT
Was macht das Teil? Wie schon vorher gesagt wird die LISTE.TXT zeilenweise ausgegeben und pro Zeile wird ATTRIB ausgeführt. Die Ausgabe sieht dann evtl so aus:

     R  I    C:\Users\TESTER\NTUSER.DAT

A  SH   I    C:\Users\TESTER\ntuser.dat.LOG1

A  SH   I    C:\Users\TESTER\ntuser.dat.LOG2

Auf diese Ausgabe wird dann der Befehl FINDSTR ausgeführt. Das Kennzeichen für Schreibschutz ("R") steht dabei immer an der sechsten Stelle (zumindest bei Windows7 :D).

Das "^.....R" bedeutet:

^ -> such nur vom Anfang an (sonst findet er auch Dateien die einfach ein R im Namen haben)

.....R -> Fünf beliebige Zeichen gefolgt von einem R.

Schlussendlich werden die entsprechenden Zeilen in die Datei C:\DATEIEN.TXT ausgegeben

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke :)

FOR /F "usebackq" %i IN (`TYPE Liste.txt`) DO ATTRIB %i|FINDSTR "^.....R">>C:\temp\showme.txt

Habe das in der Powershell von Windows ausgeführt, bekomme allerdings keine showme.txt Datei! (Die Datei Liste.txt liegt im gleichen Verzeichnis wie testattrib.bat - also auf dem Desktop)

Wenn ich das unter XP ganz normal in der CMD versuche kommt ausserdem die folgende Fehlermeldung:

=======================================================

C:\Documents and Settings\noname>"C:\Documents and Settings\noname\Desktop\testattrib.bat"

i was unexpected at this time.

=======================================================

Denke aber das liegt daran, das man die Powershell braucht, mit der er mir aber keine txt-Datei erstellt.

Kann mir jemand helfen und sagen wo der Fehler sein könnte?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 14 Jahre später...
  • mapr hat Thema gesperrt
Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...