Страница 1 из 7
Вставка содержимого буфера в новый файл (текст/изображениe)
Добавлено: Чт окт 16, 2014 14:14
helb
Батник, использующий nircmd для вставки содержимого буфера (текст или изображение) в новый файл в текущей панели. Жмем хоткей (например Ctrl+Shift+V), вводим имя — получаем файл. Оставляем поле пустым — файл автоматически называется по текущей дате-времени без расширения. Формат изображения определяется nircmd по расширению (по-умолчанию PNG).
Параметр в TC: “?%O” .
Не забудьте поменять путь к nircmd на свой.
Код: Выделить всё
@echo off
REM Paste clipboard content to new file. Text or image (image format determined by extension).
REM Filename in parameter. Defaults to current date-time.
set nircmd=B:\Progs\AUTO\NirLauncher\NirSoft\nircmd-x64.exe
if not [%1]==[] goto havearg
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set dt=%%I
set fname=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%_%dt:~8,6%
start "" /wait %nircmd% clipboard writefile %fname%
if not exist %fname% %nircmd% clipboard saveimage %fname%
exit /b
:havearg
set arg=%1
set arg=%arg:~0,1%
set arg=%arg:"=///%
if ///==%arg% (
start "" /wait %nircmd% clipboard writefile %*
if not exist %* %nircmd% clipboard saveimage %*
) else (
start "" /wait %nircmd% clipboard writefile "%*"
if not exist "%*" %nircmd% clipboard saveimage "%*"
)
Добавлено: Пт окт 31, 2014 19:44
Dimsok
Имеется такой скрипт:
' Создать файл с текстом буфера обмена (при наличии) и открыть его в редакторе
' Параметры: "%P" "<путь к редактору>"
'===================================================================================
P = WScript.Arguments(0) : Ed = WScript.Arguments(1)
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim WSH : Set WSH = CreateObject("WScript.Shell")
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\2007"
A = WSH.RegRead(R)
If A > 0 Then WSH.RegWrite R, 0, "REG_DWORD"
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If A > 0 Then WSH.RegWrite R, A, "REG_DWORD"
If Trim(Clip) = "" Then Quit
File = FSO.GetBaseName(FSO.GetTempName) & ".txt"
FSO.OpenTextFile(P & File, 2, True).Write Clip : WSH.Exec(Ed & " " & File) : Quit
Function Quit : Set WSH = Nothing : Set FSO = Nothing : WScript.Quit : End Function
Хотелось бы, чтобы в его модификации названия создаваемых файлов были более информативными, например, по текущему времени, со структурой, анологичной той, которая получается при работе вот с таким батом:
rem @echo off
set dd=%DATE%
set tt=%TIME%
set /a ddd=%dd:~0,2%
IF %ddd% LSS 10 (
SET day=0%ddd%) else (
SET day=%ddd%)
set month=%dd:~3,2%
set year=%dd:~6,4%
set /a ttt=%tt:~0,2%
IF %ttt% LSS 10 (
SET hour=0%ttt%) else (
SET hour=%ttt%)
SET minute=%tt:~3,2%
SET sec=%tt:~6,2%
echo %day% %month% %year% %hour% %minute% %sec%
copy nul %day%.%month%.%year%_%hour%.%minute%.%sec%.txt
Ну и чтобы была опция, открывать его в текстовом редакторе при создании или нет
Добавлено: Сб ноя 01, 2014 13:33
Flasher
Dimsok
Прочти памятку в части оформления кодов, а также ремарки снизу.
Мой скрипт (и
его модификация) находится за 5 секунд хотя бы по названию. Где спрашивать и как давать ссылку на нужный пост вместо оверквотинга, надеюсь, уже рассказывать не надо (это всё также прописано в памятке).
Непосредственно по запросу ответ
здесь.
Добавлено: Сб ноя 01, 2014 16:13
Dimsok
Flasher. c nircmd не открывается в блокоте и не только не открыаетя, но и не создается. А с удалением части создается без дописывания sendkeypress.
Кстати, нельзя как-то настроить, чтобы файл в уникоде создавался?
Добавлено: Сб ноя 01, 2014 16:23
Flasher
Думаю, у тебя где-то ошибка. nircmd давно обновлял?
Dimsok писал(а):А с удалением части создается без дописывания sendkeypress.
Панель сам будешь обновлять? См., там ещё с переходом пример есть.
С Юникодом у nircmd проблемы. Тут - либо скриптом либо Акелем.
Добавлено: Сб ноя 01, 2014 16:32
Dimsok
Какая ошибка? Я скопировал кнопку и поменял только путь для ниркоммандера. .А насчет обновления не знаю, моментально новый созданный файл отображается.
И ещё, ниркоммандер никак не влияет на windows script host. Вот после использования в некоторых скриптах (например тех, которые для этой же цели предназначены) стала вылазить ошибка. Помню такое и раньше было, как раз испльзовал нир. Может это совпадение, не знаю. Но эти скрипты я минут 10 назад нормально использовал
Nircmd 2.75
Добавлено: Сб ноя 01, 2014 16:39
Flasher
Dimsok писал(а):поменял только путь для ниркоммандера
Папку?
Dimsok писал(а):моментально новый созданный файл отображается.
Автообновление стоит, значит, хотя даже с ним не моментально.
Dimsok писал(а):И ещё, ниркоммандер никак не влияет на windows script host. Вот после использования в некоторых скриптах (например тех, которые для этой же цели предназначены) стала вылазить ошибка.
Так нет объектной модели, просто утилита запускается. C WSH тут вообще никаких завязок. А ошибки могут возникать только при неверном синтаксисе либо неграмотно используемых переменных в комстроке.
Добавлено: Сб ноя 01, 2014 16:44
Dimsok
%COMMANDER_PATH%\
Вот путь. Нир лежит в корневой папке тотала. Да ведь то же самое работает для создания файлов без открытия. А про неверный синтакстис, я ведь в них ничего не менял, просто использую по нажатию горячей клавиши. Ладно, после перезагруза должно нормализоваться
Добавлено: Сб ноя 01, 2014 16:50
Flasher
А у тебя в процессах не висят nircmd?
Но вообще, даже если открытия не происходит, то файл всё равно должен создаваться. Проверь.
Вопрос, а если вместо notepad прописать полный путь к редактору в кавычках - откроет?
Добавлено: Сб ноя 01, 2014 17:22
Dimsok
Нет в процессах. Да проверял не раз. Даже полный путь к блокноту указывал. А если путь к акелпад указать?
Добавлено спустя 26 минут:
Ты там кстати кавычки в параметрах не использовал. Называется, учись, студент
Добавлено: Сб ноя 01, 2014 17:45
Flasher
Не понял - там это где?
Добавлено: Сб ноя 01, 2014 18:11
Dimsok
Ну с %P. А вот все равно не работает даже с путем к редактору в кавычках. Ты тестировал у себя?
Добавлено спустя 3 минуты:
А блин, вроде щас и так работает. Я попробовал в папке с пробелами, не создавалось. Думал там надо "%P"%
Добавлено спустя 2 минуты:
Кстати, какая разница между "%P"% и "%P% Вроде и так и так работает
Добавлено спустя 9 минут:
Ооо, заработало, не понятно из за чего
Добавлено спустя 2 минуты:
Возможно у меня глюки из-за скрипта в опере для автокопирования выделенного текста
Добавлено: Сб ноя 01, 2014 18:16
Flasher
Вообще не понимаю, о чём ты. Кавычки все на месте.
Dimsok писал(а):Кстати, какая разница между "%P"% и "%P%
Не нужно вообще рассматривать вырванный кусок в контексте параметров ТС. %% возвращает в комстроке % и в данном случае касается только cmd. %P берётся в кавычки, только пребывая в одиночестве.
Dimsok писал(а):Ооо, заработало, не понятно из за чего
Что именно? Я отсюда не вижу твоих танцев с бубном.
Добавлено: Сб ноя 01, 2014 18:22
Dimsok
В 12 раз скопировал твою кнопку, сменил путь и заработало. Или в 13. Я не суеверный.
Я про то, что к примеру у тебя "%P%%date. Могут быть глюки, если будет "%P"%%date
Добавлено: Сб ноя 01, 2014 18:58
MVV
Dimsok,
Присмотрись, у него кавычки стоят вокруг всего параметра, открывающая - перед %P, закрывающая - перед пробелом и следующим параметром.