Toute option permettant de modifier le nom de copie par défaut de Windows XP de «Copie de {nom}. {Ext}» à «{nom}. {Ext} .copy»

9

Existe-t-il une option ou un outil qui me permettra de modifier la convention de dénomination par défaut pour les fichiers copiés dans le même répertoire sous Windows (XP) et supérieur.

par exemple de: Copie de {nom}. {ext} à: {nom}. {ext} .copy

Actuellement:

original_file.php
Copy of original_file.php

Voulu:

original_file.php
original_file.php.copy

Cela rendrait la recherche / le travail avec des fichiers dupliqués beaucoup plus facile (ils se trient automatiquement ensemble) et le type de fichier (par extension) change ainsi il ne peut pas accidentellement "casser" quelque chose (par exemple s'il s'agissait d'un fichier * .java, lors de la compilation I obtiendrait des erreurs)

scunliffe
la source
Notepad ++ Solution: Si vous ne traitez qu'avec des fichiers contenant du texte, comme l'indique la terminaison PHP ci-dessus, vous pouvez utiliser Notepad ++ avec sa fonction d'enregistrement automatique. Voir> Paramètres> Préférences> Onglet "Sauvegarde / Saisie semi-automatique" utilisez "Sauvegarde simple" pour un seul fichier de sauvegarde, utilisez "Sauvegarde détaillée" pour un dossier séparé où les fichiers sont horodatés. Consultez également le plugin Autosave, c'est peut-être ce que vous voulez.
Kai Noack

Réponses:

9

Si je comprends bien, vous souhaitez créer des doublons des fichiers dans le même répertoire. J'ai créé un fichier .cmd pour ce faire via le menu "Envoyer vers". Si un name.ext.copyfichier existe déjà, il créera:

  • name.ext.copy2
  • name.ext.copy3
  • etc...

À installer

  1. Allez dans le Start > Run...menu et tapez " sendto" ou " shell:sendto".
  2. Dans la fenêtre qui apparaît, créez un nouveau fichier texte.
  3. Ouvrez le nouveau fichier dans le Bloc-notes.
  4. Collez le texte ci-dessous.
  5. Renommez le fichier texte en " Copy of.cmd" (avec les guillemets).

Utiliser

  1. Sélectionnez un ou un groupe de fichiers.
  2. Cliquez avec le bouton droit sur le ou les fichiers.
  3. Sélectionnez l' option Send To...> Copy of.cmd.

Copie de.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
la source
Merci @kskfisher! cela semble être une excellente solution de contournement (s'il n'y a pas de moyen par défaut) pour ce faire. ;-)
scunliffe
0

J'ai donc résolu cela:

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

Je suppose que le problème de chemin que vous avez publié découle de la façon dont vous avez créé l'entrée de menu contextuel, car je n'ai pas ce problème.

[HKEY_CLASSES_ROOT\*\shell]

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

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

Je n'utilise pas MS Windows Explorer. J'utilise divers gestionnaires de fichiers portables / gratuits.

Tous (sauf un) avaient le problème que le script d'origine copiait le fichier dans le répertoire racine "install" du gestionnaire de fichiers freeware, j'ai donc ajouté %~d1%~p1ce qui place le lecteur \ chemin du fichier d'origine sur le fichier de sortie ...

J'ai modifié le code de diverses manières pour diverses raisons et pour lancer le code sur n'importe quel fichier sélectionné via le menu contextuel XP et non SendTo.

AEN
la source
Merci @AEN - vous vous demandez simplement comment vous "installez" cela pour être son propre élément de menu contextuel par rapport à un enfant du menu Envoyer vers?
scunliffe
1
En fait, j'ai réussi à modifier le registre et à ajouter cette option au menu contextuel ... mais je pense qu'il essaie de créer la copie / recherche dans le répertoire où se trouve mon fichier * .cmd, pas le répertoire du fichier sélectionné. J'ai utilisé les paramètres de registre (ajustés) à partir d'ici: superuser.com/questions/65105/… pour ajouter l'élément de contexte.
scunliffe
AEN, vous devez vous inscrire sur le site ou essayer de conserver vos cookies, sinon vous ne pourrez pas modifier ou répondre à votre propre message. Aussi, veuillez rester civil, ce que nous, les "éditeurs", faisons - en premier lieu - c'est de garder tout facile à lire. Conformément à la FAQ , les mesures prises ici doivent être claires pour vous. Prenez-le simplement comme un doux rappel, aucune infraction prévue.
slhck
J'aime votre code batch. Lorsque vous copiez un fichier appelé file.txt à plusieurs reprises en utilisant votre code via le menu "Envoyer vers", cela donne le fichier {copy1} .txt, le fichier {copy2} .txt, etc. Cependant, si quelqu'un préfère produire file (1) .txt, file (2) .txt, etc., les parties de votre code qui affichent {copy% 2} peuvent être remplacées par (% 2). Je sais que c'est un vieux fil, mais je voulais contribuer pour d'autres qui pourraient tomber sur cette page.
Trekker