9

Есть ли опция или инструмент, который позволит мне изменить соглашение об именах по умолчанию для файлов, скопированных в один и тот же каталог в Windows (XP) и выше.

например, из: Копировать {имя}. {ext} в: {имя}. {ext} .copy

В настоящее время:

original_file.php
Copy of original_file.php

Желаемая:

original_file.php
original_file.php.copy

Это позволит сделать вывод о / работе с дублированными файлами гораздо проще (они автоматически сортировать вместе) и Filetype (расширение) изменяется таким образом , это не случайно может "сломаться" что - то (например , если бы это было * .java файл, при компиляции I получит ошибки)

2 ответа2

9

Если я правильно понимаю, вы хотите создать дубликаты файлов в одном каталоге. Я создал .cmd файл, чтобы сделать это через меню "Отправить". Если файл name.ext.copy уже существует, он создаст:

  • name.ext.copy2
  • name.ext.copy3
  • так далее...

Установить

  1. Перейдите в меню « Start > Run... и введите « sendto » или « shell:sendto ».
  2. В появившемся окне создайте новый текстовый файл.
  3. Откройте новый файл в блокноте.
  4. Вставьте текст ниже.
  5. Переименуйте текстовый файл в « Copy of.cmd » (с кавычками).

Использовать

  1. Выберите один или группу файлов.
  2. Щелкните правой кнопкой мыши файл (ы).
  3. Выберите пункт « Send To... > « Copy of.cmd .

Копия .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
0

Итак, я решил это:

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

Я предполагаю, что проблема пути, которую вы разместили, связана с тем, как вы сделали запись в контекстном меню, потому что у меня нет этой проблемы.

[HKEY_CLASSES_ROOT\*\shell]

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

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

Я не использую MS Windows Explorer. Я использую различные портативные / бесплатные файловые менеджеры.

У всех (кроме одного) была проблема с тем, что оригинальный сценарий копировал файл в корневой каталог "install" бесплатного файлового менеджера, поэтому я добавил %~d1%~p1 который помещает диск \ путь исходного файла в вывод файл ...

Я настраивал код различными способами по разным причинам и запускал код для любого выбранного файла (ов) через контекстное меню XP, а не SendTo.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .