@echo off
rem Uzyskaj nazwę pliku, który został kliknięty
set "source_file=%~1"
rem Ścieżka do folderu kopii zapasowych (bieżący katalog)
set backup_folder=%cd%
rem Uzyskaj nazwę pliku bez ścieżki i rozszerzenia
set "file_name=%~n1"
set "file_ext=%~x1"
rem Funkcja do sprawdzania istnienia pliku i dodawania numeracji
setlocal enabledelayedexpansion
set "new_file_name=%file_name%%file_ext%"
set "i=0"
rem Sprawdź, czy nazwa pliku zawiera już numer w nawiasie
for /f "tokens=1 delims=()" %%a in ("%file_name%") do set "basename=%%a"
for /f "tokens=2 delims=()" %%b in ("%file_name%") do set "number=%%b"
if defined number (
set /a number+=1
set "new_file_name=%basename%(%number%)%file_ext%"
) else (
set "new_file_name=%file_name%%file_ext%"
)
rem Sprawdź, czy plik istnieje i dodaj numerację
:check_file
if exist "%backup_folder%\%new_file_name%" (
set /a i+=1
set "new_file_name=%basename%(!i!)%file_ext%"
goto check_file
)
rem Utwórz nowy, pusty plik
type nul > "%backup_folder%\%new_file_name%"
rem Wklej zawartość schowka do nowego pliku za pomocą PowerShell
powershell -command "Get-Clipboard | Out-File -FilePath '%backup_folder%\%new_file_name%' -Encoding UTF8"
echo Kopia zapasowa została utworzona i zawartość schowka została wklejona pomyślnie.
pause
Ten skrypt:
-
Uzyskuje nazwę pliku, który został kliknięty (source_file).
-
Określa ścieżkę do folderu kopii zapasowych (bieżący katalog).
-
Uzyskuje nazwę pliku bez ścieżki i rozszerzenia (file_name i file_ext).
-
Sprawdza, czy nazwa pliku zawiera już numer w nawiasie i zwiększa go o 1.
-
Funkcja check_file sprawdza istnienie pliku z numeracją w nazwie i automatycznie dodaje numerację, jeśli plik o tej samej nazwie już istnieje.
-
Tworzy nowy, pusty plik.
-
Używa PowerShell do wklejenia zawartości schowka do nowo utworzonego pliku.
-
Wyświetla komunikat o pomyślnym utworzeniu kopii zapasowej i wklejeniu zawartości schowka.
to działa poprawnie
Ale to, tworzy plik o nazwie %1, zamiast o prawidłowej.
Skonfiguruj skrót do uruchamiania skryptu z zaznaczonym plikiem:
-
Kliknij prawym przyciskiem myszy na utworzony skrót i wybierz "Właściwości".
-
W polu "Element docelowy" dodaj %1 na końcu ścieżki do pliku .bat. Powinno to wyglądać tak:
-
"C:\ścieżka\do\pliku.bat" %1
Utwórz skrót klawiszowy (opcjonalnie):
-
W oknie "Właściwości" skrótu przejdź do zakładki "Skrót".
-
W polu "Klawisz skrótu" wpisz kombinację klawiszy, którą chcesz użyć, np. Ctrl+Shift+K.
-
Kliknij "OK" lub "Zastosuj".
Gdzie jest błąd?