Новый файлик ...

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Прошу прощения, вот так:


Echo.>"%Date:~8,2%-%Date:~3,2%-%Date:~0,2%_%Time:~0,2%-%Time:~3,2%-%Time:~6,2%.txt"
Bubek
Сообщения: 20
Зарегистрирован: Сб июл 21, 2007 10:51

Сообщение Bubek »

Tol!k
А как сделать чтобы по нажатию этой кнопки запускался не EmEditor, а блокнот (все-таки EmEditor не на всех компах есть)?
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Bubek писал(а):EmEditor не на всех компах есть
Если бы ещё блокнот умел то, что умеет EmEditor :roll:
В этой кнопке используется GetClip

Код: Выделить всё

TOTALCMD#BAR#DATA
%comspec% /c
for /f "tokens=1,2,3,4,5,6,7 delims=:,. " %%a in ('echo %%date%% %%time%%') do GetClip>%%c-%%b-%%a_%%d-%%e-%%f.txt&&start %%c-%%b-%%a_%%d-%%e-%%f.txt
C:\WINDOWS\system32\shell32.dll,75
Создать дата_время.txt с содержимым буфера обмена и открыть

1
-1
Bubek
Сообщения: 20
Зарегистрирован: Сб июл 21, 2007 10:51

Сообщение Bubek »

Tol!k
Спасибо, у меня просто блокнот заменен на Akelpad. Файл создает, но не открывает.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

пояснение скрипта

Сообщение shveicar »

Здравствуйте - на странице 1 Volniy привел пример скрипта

Код: Выделить всё

Dim fso, F
Set fso = CreateObject("scripting.filesystemobject")
F = WScript.Arguments(0)
Set F=fso.OpenTextFile(F, 2, True)
F.WriteLine("<html>")
F.WriteLine("<head>")
F.WriteLine("<title>Untitled</title>")
F.WriteLine("</head>")
F.WriteLine("<body>")
F.WriteBlankLines(1)
F.WriteLine("Hello World!")
F.WriteBlankLines(1)
F.WriteLine("</body>")
F.WriteLine("</html>")
Set F=Nothing
Set fso=Nothing
WScript.Quit
создающего html файл
пытался изменить скрипт для создания html файла содержанием типа

Код: Выделить всё

Dim fso, F
Set fso = CreateObject("scripting.filesystemobject")
F = WScript.Arguments(0)
Set F=fso.OpenTextFile(F, 2, True)
F.WriteLine("<html>")
F.WriteLine("<head>")
F.WriteLine("<META HTTP-EQUIV="Refresh" CONTENT="0; URL=spravka.chm">")
F.WriteLine("<title>open file</title>")
F.WriteLine("</head>")
F.WriteLine("</html>")
Set F=Nothing
Set fso=Nothing
WScript.Quit
выскакивает ошибка- строка 13 символ 33 предпологается наличие объекта')' - что нужно исправить? Заранее благодарен.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):строка 13
На 13 выход. Там не на что жаловаться. Вот на 7-й:
F.WriteLine("<META HTTP-EQUIV=""Refresh"" CONTENT=""0; URL=spravka.chm"">")
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Спасибо! Я в скриптах не силен, только начинаю осваивать, как я понял, там где в теге есть кавычки - в скрипте они должны удваиваться?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

("""текст""" & переменная & """текст""текст""текст""" & переменная & """") =
"текст"текст переменной"текст"текст"текст"текст переменной"
Последний раз редактировалось Flasher Пт июн 24, 2011 15:02, всего редактировалось 2 раза.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Еще раз спасибо! Буду осваивать.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Забыл символы слияния указать, поправил.
Bubek
Сообщения: 20
Зарегистрирован: Сб июл 21, 2007 10:51

Сообщение Bubek »

Подскажите, пользовался вот этой кнопкой

Вместо emeditor у меня Akepad, месяца три кнопка перестала работать как нужно, т.е. файл создает, а вот из буфера обмена текст в него не помещает, что нужно подправить?

[mod="Avada"]Замечание за оверквотинг. Если дана ссылка, зачем ещё код кнопки? Избыточная информация удалена.[/mod]
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Bubek
Вы, говоря дипломатично, вводите в заблуждение форумчан своим вопросом. Кнопка, на которую Вы ссылаетесь, никогда не работала правильно с AkelPad'ом. Дело в том, что код кнопки ничего не делает с буфером обмена. Вероятно, за копирование из буфера отвечает ключ комстроки /i (не уверен, emEditor не использую), но к Акелу он не имеет никакого отношения. Попробуйте поэкспериментировать с ключом /Command(4155). Кроме того, Акел позволяет молча создавать несуществующий файл при использовании ключа /C+ (т.е. файл в коде кнопки можно не создавать, а сразу передавать сформированное имя редактору). Можно и вовсе не создавать никакого файла, а вставлять содержимое буфера в новую вкладку.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Теоретически, он д.б. пользоваться специально сделанной по его заказу кнопкой (третий пост на этой странице)

Для помещения буфера в файл там используется сторонняя утилита.
Bubek
Сообщения: 20
Зарегистрирован: Сб июл 21, 2007 10:51

Сообщение Bubek »

Serge Yolkin
Спасибо, после нескольких попыток была добавлена в конец параметров команда /Command(4155) - все работает.
P.s. Извините что ввел Вас в заблуждение.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

[off]
По мотивам последних постов поэкспериментировал сам, правда на JS. Но комстроку можно выдернуть куда угодно.
1. Создать в Акеле файл с датой в имени и содежимым из буфера:

Код: Выделить всё

var t=new Date(),u='';
u=q(t.getFullYear())+' '+q(t.getMonth()+1)+' '+q(t.getDate())+' '+q(t.getHours())+' '+q(t.getMinutes())+' '+q(t.getSeconds());
new ActiveXObject('WScript.Shell').Exec('%COMMANDER_PATH%\\AkelPad\\AkelPad.exe /C+ '+u+'.txt/Command(4155)/Command(4196)/Command(4196)');
function q(e){return(('0'+e).substring((''+e).length-1));}
2. Создать в Акеле (если он уже открыт) новую вкладку (если не открыт - просто открыть) и вставить содержимое буфера:

Код: Выделить всё

new ActiveXObject('WScript.Shell').Exec('%COMMANDER_PATH%\\AkelPad\\AkelPad.exe /Call("Templates::Open",1,"")/Command(4155)/Command(4196)/Command(4174)');
Если не используется плагин Templates можно заменить Call... на Command(4101) (при использовании плагина такой ключ покажет диалог выбора шаблона, что я посчитал неудобным)
[/off]
Последний раз редактировалось Serge Yolkin Пн фев 13, 2012 01:17, всего редактировалось 3 раза.
Ответить