File Attribute setzen

German support forum

Moderators: Hacker, Stefan2, white

MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

File Attribute setzen

Post by *MichaelK »

Hallo,

ich muß ziemlich häufig das "read only" Attribut einer Datei setzen und rücksetzen. Rechte Maustaste/Properties/Haken/ok ist mir auf Dauer zu aufwendig. Gibt es eine Möglichkeit, das mit dem Total Commander zu automatisieren? Z.B. ctrl+r oder was ähnliches und dann toggelt er das Attribut. Fänd ich wirklich praktisch.

Vielen Dank,

Michael
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Suchst du den menupunkt:
Dateien/Dateiattribute aendern...
?
I switched to Linux, bye and thanks for all the fish!
MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

Post by *MichaelK »

Ja, im Prinzip schon. Nur geht dann ein Fenster auf, ich muß die Haken setzen und ok drücken. Das ist nicht wirklich einfacher, als über die rechte Maustaste. Ich will einfach z.B. ctrl+r drücken und dann soll das read only flag getoggelt werden. Gibt es sowas?

Und noch eine kleine Frage: wenn ich eine Tastenkombination definiere, wie kann ich denn erkennen ob und mit was die im Moment belegt ist. Wenn ich z.B. ctrl+r eingebe, steht da einfach nur "voreingestellte Definition". Aber was ist denn voreingestellt?

Danke,

Michael
User avatar
Leif
Senior Member
Senior Member
Posts: 328
Joined: 2003-02-05, 15:44 UTC
Location: Umeå, Sweden

Post by *Leif »

MichaelK wrote:Wenn ich z.B. ctrl+r eingebe, steht da einfach nur "voreingestellte Definition". Aber was ist denn voreingestellt?
Ctrl/Strg+R = Reread/Quelle neu einlesen
MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

Post by *MichaelK »

Danke Leif,

hätte ich selbst drauf kommen können, weil ich die Tastenkombination selber immer wieder benutze. Kleiner blackout ;-)

Meine Frage war aber allgemeiner. Wie kann ich für jede andere Tastenkombination prüfen, was dahintersteckt? Auch bei Total-Commander eigenen Tastenkombinationen, wie z.B. Ctrl+M zeigt er es nicht an.

Schönen Gruß,

Michael
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Wie kann ich für jede andere Tastenkombination prüfen, was dahintersteckt?
Ja, das kannst du nicht, nur mittels Hilfe, da gibt es eine liste der tastenkombinationen.

Zur ursprünglichen frage:
Interner kommando gibt es nur den cm_SetAttrib, das ist ja dein bekannter dialog. Was du willst, benötigt neue kommandos, wie zb cm_SetReadOnly oder cm_ToggleReadOnly. Vielleicht hilft noch Aezay's TC scripter.
I switched to Linux, bye and thanks for all the fish!
MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

Post by *MichaelK »

...das ist schade :( Aber vielen Dank für die schnelle Hilfe.

Vielleicht kann der Author des TC entsprechende Verbesserungen mal in Erwägung ziehen. Für mich wäre es sehr nützlich und ich bin wahrscheinlich kein Einzelfall.

Vielen Dank nochmal!

Michael
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Also toggeln kannst Du das bit wohl nicht, aber zum setzen oder löschen sollte es eine batch tun. Willst Du nur eine oder mehrere Dateien auf einmal umstellen?

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

Post by *MichaelK »

normalerweise nur eine Datei. Wenn sich aber jemand (der Author) der Sache annimmt und eine solche Funktion einbaut, dann sollte es schon etwas flexibler sein und z.B. auch rekursiv für Unterverzeichnisse funktionieren. Die Funktionen dazu sind ja anscheinend schon vorhanden.
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Erstelle Dir einen Button:

Kommando: attrib
Parameter: %n -r
Icondatei: %Commander_path%\Totalcmd.exe,14

und einen zweiten

Kommando: attrib
Parameter: %n +r
Icondatei: %Commander_path%\Totalcmd.exe,9

Als Icon kannst Du natürlich auch was anderes nehmen.

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

Wenn Du das Tool Lst2Multi benutzt, dann kannst Du bei den ausgewählten Dateien in einem Rutsch die Attribute ändern:


Erstelle Dir einen Button:

Kommando: lst2mlt.exe | hier evtl. den Pfad zum Programm hinzufügen
Parameter: /X:attrib.exe /L:%L /E:-r
Icondatei: %Commander_path%\Totalcmd.exe,14

und einen zweiten

Kommando: lst2mlt.exe | hier evtl. den Pfad zum Programm hinzufügen
Parameter: /X:attrib.exe /L:%L /E:+r
Icondatei: %Commander_path%\Totalcmd.exe,9

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

Post by *MichaelK »

Super, das ist schon so ziemlich genau das, was ich brauche. Das hilft mir.

Vielen Dank,

Michael
MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

Post by *MichaelK »

Meine letzte Antwort bezog sich auf deinen vorherigen Beitrag. Hab jetzt mal lst2multi probiert. Damit habe ich nun genau das, was ich gesucht habe. Hervorragend. Ich bin begeistert. Vielen Dank für deine Hilfe.

Michael
User avatar
Sheepdog
Power Member
Power Member
Posts: 5150
Joined: 2003-12-18, 21:44 UTC
Location: Berlin, Germany
Contact:

Post by *Sheepdog »

MichaelK wrote:Damit habe ich nun genau das, was ich gesucht habe.
Ich denke nicht, Du wolltest doch mit einem Klick umschalten oder ? Außerdem bekommst Du mit diesem Button keine versteckten/Systemdateien umgeschaltet.
Ich habe jetzt dafür eine Batchdatei geschrieben.

Code: Select all

@echo off

rem Dateien readonly-flag löschen 
for /f "tokens=1,2,3,4,5 " %%i in ('attrib %1') do if /i "%%i"=="R" (@echo attrib %1 -r>>%1r-.bat) else if /i "%%i"=="HR" (@echo attrib %1 -h -r>>%1r-.bat) else if /i "%%i"=="SHR" (@echo attrib %1 -s -h -r>>%1r-.bat) else if /i "%%i"=="S" (if "%%j"=="R" (@echo attrib %1 -s -r>>%1r-.bat)) else if /i "%%i"=="A" if /i "%%j"=="R" (@echo attrib %1 -r>>%1r-.bat) else if /i "%%j"=="HR" (@echo attrib %1 -h -r>>%1r-.bat) else if /i "%%j"=="SHR" (@echo attrib %1 -s -h -r>>%1r-.bat) else if /i "%%j"=="S" if "%%k"=="R" (@echo attrib %1 -s -r>>%1r-.bat)
rem Wenn kein Readonly-Flag zu löschen ist, muss auch kein SYS bzw Hidden wiederhergestellt werden
if not exist %1r-.bat goto setzen

rem und die Sys bzw Hidden bits wieder setzen
for /f "tokens=1,2,3,4,5 " %%i in ('attrib %1') do if /i "%%i"=="HR" (@echo attrib %1 +h>>%1r-.bat) else if /i "%%i"=="SHR" (@echo attrib %1 +s +h>>%1r-.bat) else if /i "%%i"=="S" (if "%%j"=="R" (@echo attrib %1 +s>>%1r-.bat)) else if /i "%%i"=="A"  if /i "%%j"=="HR" (@echo attrib %1 +h>>%1r-.bat) else if /i "%%j"=="SHR" (@echo attrib %1 +s +h>>%1r-.bat) else if /i "%%j"=="S" if "%%k"=="R" (@echo attrib %1 +s>>%1r-.bat)

rem Wenn ein RO-Flag gelöscht wird, dann muss man nicht prüfen, ob eins gesetzt werden muß (die Batch wird ja für jede Datei einzeln aufgerufen)

if exist %1r-.bat goto ändern

:setzen
rem Dateien Readonly flag setzen
for /f "tokens=1,2,3,4,5 " %%i in ('attrib %1') do if /i "%%i" NEQ "R" 	if /i "%%i" NEQ "HR" 	if /i "%%i" NEQ "SHR" 	if /i "%%j" NEQ "R" 	if /i "%%j" NEQ "HR" 	if /i "%%j" NEQ "SHR" if /i "%%k" NEQ "R" (@echo attrib %1 -s -h +r>>%1r-.bat)

rem Und system und hidden wiederherstellen	
for /f "tokens=1,2,3,4,5 " %%i in ('attrib %1') do if /i "%%i"=="H" (@echo attrib %1 +h>>%1r-.bat) else if /i "%%i"=="SH" (@echo attrib %1 +s +h>>%1r-.bat) else if /i "%%i"=="S" (@echo attrib %1 +s>>%1r-.bat) else if /i "%%j"=="H" (@echo attrib %1 +h>>%1r-.bat) else if /i "%%j"=="SH" (@echo attrib %1 +s +h>>%1r-.bat) else if /i "%%j"=="S"  (@echo attrib %1 +s>>%1r-.bat)


:ändern
call %1r-.bat
del %1r-.bat
Kopiere Dir den Code und speichere ihn in mit einem einem Texteditor z.B unter dem Namen TR.bat (für Toggle Readonly). Diese Batch am einfachsten nach %windir%\system32 kopieren. Dann in Deinem Button mit Lst2Mlt als Parameter: '/X:tr.bat /L:%L' eingeben, und bei den markierten Dateien wird das Readonly-Flag getoggelt, egal ob System oder Hidden Flag gesetzt sind.
Das einzige was mich stört, sind die DOS-Fenster, die dann immer auf und zugehen. Aber da weiss ich leider nicht, was man dagegen tun kann.

Wenns Dich zu sehr stört, musst Du halt mit der 2 Button-Lösung leben.

sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
MichaelK
Junior Member
Junior Member
Posts: 23
Joined: 2004-07-08, 07:25 UTC
Location: Stromberg, Rlp

Post by *MichaelK »

Da hat aber jemanden der Ehrgeiz gepackt...

Vielen Dank für diese Lösung. Damit kann man auch mal wieder die bereits eingerosteten Kenntnisse im Schreiben von DOS-Batchdateien auffrischen :D

Danke,

Michael
Post Reply