Der TCmd schreibt bei Aenderung eines Eintrages in der wincmd.ini diesen Eintrag unverzueglich in die wincmd.ini. Nun ist dieses Vorgehen bei USB-Sticks nicht optimal, da Flash-EPROMs derzeit ca. maximal 100k Loesch-Schreibzyklen ueberstehen und danach langsam in den Halbleiterhimmel entfleuchen.
Demzufolge waere ein TCmd-eigener wincmd.ini-Cache wuenschenswert, der erst beim Beenden des TCmd bzw. Ausfuehren des internen Befehls cm_INICacheFlush die Aenderungen auf den Datentraeger schreibt. Der Cache ist optional und wird in der wincmd.ini mit INICacheEnable=1 (default=0) eingeschaltet.
Man kann sich zwar hierbei auch mit einem kleinem Batch behelfen, aber ...
@echo off
copy .\tcmd\wincmd.ini %temp%\wincmd.ini
.\tcmd\totalcmd.exe /i=%temp%\wincmd.ini
Hat jedoch den Nachteil, dass
1. bei vergesslichen Naturen Datenmuell in %temp% bleibt
2. man den schoenen extra fuer USB-Sticks eingefuehrten Eintrag UseIniInProgramDir nicht benutzen kann.
Stimmt die Ini kopieren, da hätte man auch selber drauf kommen können
Hab für mich eine andere (aber auch nicht so besonders schöne) Lösung gefunden. Die USB-Stick Version der wincmd.ini wird als Read-Only markiert, damit ist das Problem IMO auch erstmal gelöst.
Die USB-Stick Version der wincmd.ini wird als Read-Only markiert, damit ist das Problem IMO auch erstmal gelöst.
Damit laesst sich jedoch rein gar nicht mehr vernuenftig arbeiten. Z.B. geht nach Schliesen des Suchen-Fenster sofort die Historie verloren. Die Umschaltung von 8.3-Dateinamen und zurueck funktioniert gleichfalls nicht mehr...
Naja zugegeben es hat so einige Macken (ist ja auch nur eine Notlösung), aber für mich ist es okay, denn normalerweise arbeite ich nicht mit der USB-Stickversion (die ist halt nur für die Rechner wo es nicht schon vernünftig installiert ist) und kann daher mit den Einschränkungen leben.
@echo off
copy .\tcmd\wincmd.ini %temp%\wincmd.ini
.\tcmd\totalcmd.exe /i=%temp%\wincmd.ini
Hat jedoch den Nachteil, dass
1. bei vergesslichen Naturen Datenmuell in %temp% bleibt
2. man den schoenen extra fuer USB-Sticks eingefuehrten Eintrag UseIniInProgramDir nicht benutzen kann.
Wie wäre es mit dieser Erweiterung? (Vorsicht, ungetestet.)
@echo off
copy .\tcmd\wincmd.ini %temp%\wincmd.ini
start /wait .\tcmd\totalcmd.exe /i=%temp%\wincmd.ini
copy %temp%\wincmd.ini .\tcmd\wincmd.ini
del %temp%\wincmd.ini
Grüße,
Karl
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine. The Prophet's Song
2karlchen
Danke fuer Deinen Hinweis. War mir jedoch schon klar. Der Nachteil dann: es bleibt solange ein DOS-Fenster "offen" (kann man zwar minimiert starten - in der Taskliste ... sieht man es trotzdem). Zudem - auch hier ist UseIniInProgramDir voellig nutzlos. Es geht um die einfache Nutzung des TCmd von einem USB-Stick aus. Jetzt haben wir schon einen neuen Eintrag UseIniInProgramDir (der vorher schon nicht notwendig war - %COMMANDER_PATH% war der Bringer schlechthin) und nun halte ich es durchaus auch fuer sinnvoll, dass der TCmd nicht wegen jeder klitzkleinen Aenderung (Suche, Umschalten von cm_SwitchHidSys ...) gleich sofort auf den USB-Stick schreibt und damit die Lebensdauer des Sticks merklich verkuerzt.
Stimmt natürlich alles, was du über die Nachteile einer Batchdatei schreibst.
Die sauberste Lösung, um unsere kostbaren USB-Sticks zu schonen, wäre wirklich, die wincmd.ini zu cachen und nur am Ende einmal zurückzuschreiben.
Meine Erweiterung sollte auch nur verhindern, daß die wincmd.ini im %temp% vergessen wird, und sicherstellen, daß Änderungen zurückübertragen werden. (Letzteres könnte man natürlich bei einer USB Version genau nicht wollen, dann passende Zeile auskommentieren oder löschen.) Egal, bleibt nur Gefrickel, oder netter gesagt, Workaround.
Grüße
Karl
MX Linux 21.3 64-bit xfce, Total Commander 11.50 64-bit The people of Alderaan keep on bravely fighting back the clone warriors sent out by the unscrupulous Sith Lord Palpatine. The Prophet's Song
norfie wrote:Nun ist dieses Vorgehen bei USB-Sticks nicht optimal, da Flash-EPROMs derzeit ca. maximal 100k Loesch-Schreibzyklen ueberstehen und danach langsam in den Halbleiterhimmel entfleuchen.
norfie, wird denn damit gleich der gesamte USB-Stick unbrauchbar oder lediglich die Speicherzellen, deren maximale Anzahl von Schreibzyklen überschritten wurde?
wird denn damit gleich der gesamte USB-Stick unbrauchbar oder lediglich die Speicherzellen
Es betrifft nur einzelne Speicherzellen. Jetzt kommt es drauf an, wie der USB-Stick intern sich selbst organisiert. Ist er nur stockdumm, kann es passieren, dass damit der gesamte Stick unbrauchbar wird, falls die defekte Speicherzelle z.B. in der FAT liegt. Leider ist dies gar nicht so unwahrscheinlich, da sich in der Tat Verwaltungsinformationen (FAT) oft aendern. Aus diesem Grund ist es z.B. ratsam sich oft aendernde Dateien in einem Unterverzeichnis abzulegen. (OT: auch das Defragmentieren eines Flash-Speicher ist unter dem Gesichtspunkt Lebensdauer eher kontraproduktiv)
Ich empfehle einen "hardwareseitigen Workaround":
Anstatt USB-Sticks mit Flash-Speichern zu verwenden, lieber eine Mini-USB-Festplatte benutzen. Es gibt z. B. von Seagate so ein Ding für die Hosentasche mit immerhin 5GB. Der "Preis pro MB" ist auch deutlich günstiger, als der von Flash-Sticks, bei denen zudem derzeit bei 2GB Schluss ist.
!!!Nein, ich bekomme leider nichts von Seagate für diese Werbung!!!
2Lupus
USB-Sticks/Flash-Speicher und Mini-Festplatten sind noch sehr unterschiedlich, so daß ein direktes Ersetzen nicht immer möglich ist. Der Benchmark "Preis pro MB" spielt heute bei externen Speicher zudem oft nicht die entscheidene Rolle - da ist der Preis pro Einheit oft wichtiger (USB-Sticks gibt es ab 10 Euro aufwärts). Zudem würde auch die externe Festplatte vom Caching profitieren, da die Wahrscheinlichkeit, daß die Festplatte dreht bzw. neu anläuft, durch das Caching sinkt.
The doorstep to the temple of wisdom is a knowledge of our own ignorance. Benjamin Franklin
2nevidimka
Bei dem Ding das ich meine, ist ein CFII-Microdrive eingebaut.
Ich mag mich irren, aber ich glaube die Microdrives schalten nicht ab, sondern laufen immer durch, oder?
Man kann auch das Speichern der meisten Settings beim Beenden deaktivieren, dann schreibt TC nicht so oft in the ini-Dateien. Wenn möglich sollte man auch den Schreibcache wieder einschalten, das beschleunigt das Schreiben ausserdem sehr stark.