Windows: Скопіюйте та перейменуйте файл за один крок? Ярлик?


3

Я втомився від цих кроків при копіюванні та перейменуванні файлу (Провідник Windows):

  1. CTRL + C
  2. CTRL + V
  3. Клавіші навігації
  4. F2

screenclip showing the renaming

Чи немає в Windows 7 функції або ярлика, що файл копіюється і перебуває в режимі перейменування негайно?

Можливо, це складне питання, але робити це 50 разів на день заощаджує принаймні 50 * 2 штрихів клавіатури.

PS: Я знаю, що ви можете зробити це за допомогою CMD copy "file1.txt" "file2.txt", але я б хотів зробити це безпосередньо в Windows Explorer.

Відповіді:


1
 ; Press F1 in Explorer to copy and manually rename the copy of the selected file
 ; - If the size of the selected is less 50 MB, directly in the explorer
 ; - otherwise using an input box (because the copying process takes more time) 

#If WinActive("ahk_class CabinetWClass")

    $F1::
    ClipSaved := ClipboardAll 
    clipboard := "" 
    Send, ^c 
    ClipWait, 2
    if (!ErrorLevel)
    {
        SplitPath, clipboard,, dir, ext, NameNoExt
        If (ext = "")
        {
            MsgBox, No file selected
            clipboard := ClipSaved
            return
        }
        FileGetSize, size, %clipboard%, M
        If (size < 50)
        {
            Sleep, 100
            Send, ^v
            Sleep, 500
            ; Send, {F2} ; or
            SendInput, {F2}%NameNoExt% ; if you want to remove " - Copy"
        }
        else
        {
           InputBox, UserInput, Filename, Enter a name for the file,, 350, 120,,,,, %NameNoExt%
            if (!ErrorLevel)    
                FileCopy, %clipboard%, %dir%\%UserInput%.%ext%, 1  
        }
    }
    else
        MsgBox, No file selected
    Sleep, 300
    clipboard := ClipSaved
    return

#If

Близько до фінішу! Залишилося лише одне: після натискання клавіші F1 він має скопійований файл - Copy наприкінці. test.txt стає test - Copy.txt, але скопійований файл має мати однакову назву: test.txt - Це можливо?
Kai Noack

Спробуйте редагувати відповідь.
user3419297

Чудово! Це рішення.
Kai Noack

1

Я думаю, що ваш найкращий шлях - це написання сценарію, який робить те, що ви хочете, а потім помістити його в реєстр, щоб він з'являвся, коли ви клацніть правою кнопкою миші - & gt; відкрити у файлі. Сценарій буде приймати ваш файл як параметр, а потім копіювати і перейменовувати, як ви хочете (особливо, якщо ви тільки хочете перейменувати, як у прикладі, з суфіксом числа).

І якщо ви шукаєте тільки клавіатуру, ви можете розмістити ярлик для сценарію на робочому столі, а в властивостях ярлика призначити йому клавіатурне скорочення.

Якщо вам потрібно вказати певне ім'я файлу (тобто не просто автоматичний суфікс), ви завжди можете скористатися власним скриптом - це легко на більшості мов.

Підсумок, якщо ви можете його кодувати, це можна зробити ... Якщо ні, то це може бути хорошим контекстом для того, щоб зробити перші кроки кодування!


1

Використання програми сценаріїв AutoHotkey :

; Press F1 in Explorer or desktop to copy and rename the copy of the selected file:

#If WinActive("ahk_class CabinetWClass") or WinActive("ahk_class Progman")

    $F1::
    ClipSaved := ClipboardAll       ; save the entire clipboard to the variable ClipSaved
    clipboard := ""                 ; empty the clipboard (start off empty to allow ClipWait to detect when the text has arrived)
    Send, ^c                        ; copy the selected text, file or folder
    ClipWait, 2                     ; wait for the clipboard to contain data. 
    if (!ErrorLevel)                ; If NOT ErrorLevel clipwait found data on the clipboard
    {
        SplitPath, clipboard,, dir, ext, NameNoExt ; separate the file path into directory and extension
        If (ext = "")
        {
            MsgBox, No file selected
            clipboard := ClipSaved      ; restore original clipboard
            return
        }
       InputBox, UserInput, Filename, Enter a name for the file,, 350, 120,,,,, %NameNoExt%
        if (!ErrorLevel)    
            FileCopy, %clipboard%, %dir%\%UserInput%.%ext%, 1       
    }
    else
        MsgBox, No file selected
    clipboard := ClipSaved
    return

#If 

Wow, вражений. Однак: 1. Ім'я оригінального файлу має бути показано у полі вводу (не порожнє). 2. Чи можливо без додаткового поля введення, але безпосередньо в досліднику?
Kai Noack

1. Див. Мою відредаговану відповідь. 2. Див. Мою наступну відповідь.
user3419297
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.