Jede Option zum Ändern der Windows XP-Standardkopie Hier wird der Name von "Kopie von {Name}. {Ext}" in "{Name}. {Ext} .copy" geändert.

9

Gibt es eine Option oder ein Tool, mit dem ich die Standardbenennungskonvention für Dateien ändern kann, die unter Windows (XP) und höher in dasselbe Verzeichnis kopiert wurden?

zB von: Kopie von {name}. {ext} nach: {name}. {ext} .copy

Zur Zeit:

original_file.php
Copy of original_file.php

Gewünscht:

original_file.php
original_file.php.copy

Dies würde das Finden / Arbeiten mit duplizierten Dateien viel einfacher machen (sie werden automatisch zusammen sortiert) und der Dateityp (durch Erweiterung) ändert sich, so dass beim Kompilieren von I nicht versehentlich etwas "kaputt gemacht" werden kann (z. B. wenn es sich um eine * .java-Datei handelt) würde Fehler bekommen)

scunliffe
quelle
Problemumgehung für Notepad ++: Wenn Sie nur mit Dateien arbeiten, die Text enthalten, wie das obige PHP-Ende impliziert, können Sie Notepad ++ mit seiner Funktion zum automatischen Speichern verwenden. Siehe> Einstellungen> Einstellungen> Registerkarte "Sicherung / automatische Vervollständigung". Verwenden Sie "Einfache Sicherung" für nur eine Sicherungsdatei. Verwenden Sie "Ausführliche Sicherung" für einen separaten Ordner, in dem Dateien Zeitstempel erhalten. Schauen Sie sich auch das Plugin Autosave an, dies könnte das sein, was Sie wollen.
Kai Noack

Antworten:

9

Wenn ich das richtig verstehe, möchten Sie Duplikate der Dateien im selben Verzeichnis erstellen. Ich habe dazu eine .cmd-Datei über das Menü "Senden an" erstellt. Wenn bereits eine name.ext.copyDatei vorhanden ist, wird Folgendes erstellt:

  • name.ext.copy2
  • name.ext.copy3
  • usw...

Installieren

  1. Gehen Sie zum Start > Run...Menü und geben Sie " sendto" oder " shell:sendto" ein.
  2. Erstellen Sie im folgenden Fenster eine neue Textdatei.
  3. Öffnen Sie die neue Datei im Editor.
  4. Fügen Sie den folgenden Text ein.
  5. Benennen Sie die Textdatei in " Copy of.cmd" um (mit den Anführungszeichen).

Benutzen

  1. Wählen Sie eine oder eine Gruppe von Dateien aus.
  2. Klicken Sie mit der rechten Maustaste auf die Datei (en).
  3. Wählen Sie die Option Send To...> Copy of.cmd.

Kopie von.cmd

for %%f in (%*) do call :try_copy %%f
goto :eof

:try_copy
if not exist "%~1.copy%2" goto :copy
call :try_next %1 %2
goto :eof

:copy
copy %1 "%~1.copy%2"
goto :eof

:try_next
if "%2" == "" ( set _next=2 ) else ( set /a _next=%2 + 1 )
call :try_copy %1 %_next%
goto :eof
mskfisher
quelle
Danke @kskfisher! Das scheint eine großartige Problemumgehung zu sein (sollte es keinen Standardweg geben), um dies zu tun. ;-)
Scunliffe
0

Also habe ich das gelöst:

for %%f in (%*) do call :try_copy %%f
goto :eof

:try_copy
if not exist "%~d1%~p1%~n1{copy%2}%~x1" goto :copy
call :try_next %1 %2
goto :eof
:copy
if "%2" == "" call :try_next %1 %2
copy %1 "%~d1%~p1%~n1{copy%2}%~x1"
exit

:try_next
set /a _next=%2 + 1
call :try_copy %1 %_next%
goto :eof

Ich würde vermuten, dass das von Ihnen veröffentlichte Pfadproblem darauf zurückzuführen ist, wie Sie den Kontextmenüeintrag vorgenommen haben, da ich dieses Problem nicht habe.

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\AllF01]
 @="C&@py"

[HKEY_CLASSES_ROOT\*\shell\AllF01\command]
 @="C:\\AEdNs\\nCodIP\\nCodIU\\Copy.cmd \"%1\""

Ich benutze MS Windows Explorer nicht. Ich benutze verschiedene tragbare / Freeware-Dateimanager.

Alle (bis auf einen) hatten das Problem, dass das ursprüngliche Skript die Datei in das Stammverzeichnis "install" des Freeware-Dateimanagers kopieren würde. Deshalb habe ich hinzugefügt, %~d1%~p1dass das Laufwerk \ Pfad der Originaldatei in die Ausgabedatei aufgenommen wird ...

Ich habe den Code aus verschiedenen Gründen auf verschiedene Weise optimiert und den Code für alle ausgewählten Dateien über das XP-Kontextmenü und nicht SendTo gestartet.

AEN
quelle
Danke @AEN - Sie fragen sich nur, wie Sie dies als eigenen Kontextmenüpunkt "installieren", im Vergleich zu einem untergeordneten Element des Menüs "Senden an"?
Scunliffe
1
Eigentlich habe ich es geschafft, die Registrierung zu bearbeiten und diese Option zum Kontextmenü hinzuzufügen ... aber ich denke, es wird versucht, die Kopie / Suche in dem Verzeichnis zu erstellen, in dem sich meine * .cmd-Datei befindet, nicht im Verzeichnis der ausgewählten Datei. Ich habe die Registrierungseinstellungen (angepasst) von hier aus verwendet: superuser.com/questions/65105/… , um das Kontextelement hinzuzufügen.
Scunliffe
AEN, Sie sollten sich auf der Website registrieren oder versuchen, Ihre Cookies zu behalten, da Sie sonst Ihren eigenen Beitrag nicht bearbeiten oder beantworten können. Bitte halten Sie es auch höflich. Was wir "Redakteure" tun, ist in erster Linie, alles leicht lesbar zu halten. Gemäß den häufig gestellten Fragen sollten die hier ergriffenen Maßnahmen für Sie klar sein. Nehmen Sie es einfach als sanfte Erinnerung, keine Straftat beabsichtigt.
Slhck
Ich mag deinen Batch-Code. Wenn Sie eine Datei mit dem Namen file.txt wiederholt mit Ihrem Code über das Menü "Senden an" kopieren, erhalten Sie die Datei {copy1} .txt, die Datei {copy2} .txt usw. Wenn jedoch jemand lieber Datei (1) .txt, Datei (2) .txt usw. ausgeben möchte, können die Teile Ihres Codes, die {copy% 2} anzeigen, in (% 2) geändert werden. Ich weiß, dass dies ein alter Thread ist, wollte aber einen Beitrag für andere leisten, die möglicherweise auf diese Seite stoßen.
Trekker