В процессе запуска определяется что именно находится в буфере обмена, и в зависимости от содержания выполняются различные действия:
- Если изображение, то создаётся png-файл с именем "
Clipboard_ДАТА_ВРЕМЯ.png
" содержащим картинку из буфера обмена. - Если текст, то создаётся текстовый файл с аналогичным названием, но если в первой строке будет обнаружена http-ссылка, то будет скачена каждая ссылка из буфера обмена (например, если там находится список со ссылками).
start "" /MIN D:\Soft\_Tools_\Utils\ClipPaste.cmd
В качестве вспомогательных утилит используются следующие программы:
- grep, head, iconv из пакета UnxUtils
- winclip - из пакета Outwit.
- nircmd - от NirSoft (в качестве альтернативы можно использовать тот же winclip, но скорость сохранения изображений больших размеров немного удручающая)
- aria2 - консольная программа для загрузки файлов по сети (в качестве альтернативы можно воспользоваться любой аналогичной программой, которая принимает на вход файл со списком ссылок)
Code: Select all
@echo off
set binpath=D:\Soft\_Tools_
set tempfile="%temp%\temp_url.txt"
set ftimename=Clipboard_%DATE:/=-%_%TIME::=-%
for /F "usebackq delims=" %%i in (`%binpath%\Utils\winclip.exe -i ^| %binpath%\UnxUtils\grep.exe -E --regexp="CF_TEXT|CF_BITMAP"`) do @set conttype=%%i
if "%conttype%" EQU "CF_BITMAP" goto CF_BITMAP
if "%conttype%" EQU "CF_TEXT" goto CF_TEXT
echo unknown clip data
goto end
:CF_BITMAP
rem %binpath%\Utils\winclip.exe -p > 000000.ppm
rem %binpath%\Graphics\Xn\XnView\nconvert.exe -clevel 6 -o "%ftimename%.png" -out png 000000.ppm > nul
rem del /q 000000.ppm
%binpath%\NirSoft\nircmd.exe clipboard saveimage "%ftimename%.png"
goto end
:CF_TEXT
for /F "usebackq delims=" %%i in (`%binpath%\Utils\winclip.exe -p ^| %binpath%\UnxUtils\head.exe --lines=1 ^| %binpath%\UnxUtils\grep.exe -E --regexp="http:|https:"`) do @set textline=%%i
if "%textline%" EQU "" goto mktxtfile
%binpath%\Utils\winclip.exe -p -u -b | %binpath%\Utils\iconv.exe -c -f UTF-16 -t UTF-8 > %tempfile%
start %binpath%\Net\Aria2\aria2c.exe --input-file=%tempfile% --check-certificate=false
goto end
:mktxtfile
%binpath%\Utils\winclip.exe -p -u -b > "%ftimename%.txt"
goto end
:end
rem del /q %tempfile%
echo on
exit
За три года пользования этим батником обленился настолько, что некоторые картинки сохраняю данным методом а не через стандартный способ через Save As в редакторе изображений.
Надеюсь, пригодится и вам.