Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как записать информацию из буфера обмена в файл тхт батником? (http://forum.oszone.net/showthread.php?t=249807)

angel_lyucifer 23-12-2012 21:02 2051853

Как записать информацию из буфера обмена в файл тхт батником?
 
Привет всем! Как записать из буфера обмена в файл тхт батником, без пустых вторых строк в конце, внутри файла тхт?
nircmd.exe clipboard addfile "c:\My Files\info1.txt" такой вариант не подходит, я уже пробовал.

Iska 23-12-2012 21:34 2051876

Цитата:

Цитата angel_lyucifer
…без пустых вторых строк в конце, внутри файла тхт? »

Поясните.

angel_lyucifer 24-12-2012 03:41 2052130

После сохранения информации например пароль к игре в текстовый файл, и если его открыть в нём будет 2 строки, 1 строка будет нужная мне с инфой (с паролем) а 2 строка будет пустой.
Но мне нужно что бы была только одна строка, информацией.

Iska 24-12-2012 09:28 2052236

angel_lyucifer, как Вы сохраняете информацию в файл?

angel_lyucifer 24-12-2012 18:31 2052645

С помощью такой команды nircmd.exe clipboard addfile "c:\My Files\info1.txt"

Если хотите, могу дать исходник моей программы! =)

Iska 24-12-2012 22:59 2052836

Цитата:

Цитата angel_lyucifer
С помощью такой команды nircmd.exe clipboard addfile "c:\My Files\info1.txt" »

angel_lyucifer, я проверил Ваш способ. У меня нет лишних строк. Одна строка. Повторное выполнение команды добавляет вторую строку. И т.д.

Цитата:

Цитата angel_lyucifer
Если хотите, могу дать исходник моей программы! »

Попробуйте. Не уверен, что это поможет.

angel_lyucifer 25-12-2012 04:10 2052914

Хорошо, попробую вам показать!
forum.oszone.net/attachment.php?attachmentid=91984&stc=1&d=1356392916
Посмотрите пожалуйста внимательно на скрин, там две строчки одна с паролем а вторая пустая!

angel_lyucifer 25-12-2012 04:36 2052916

Или подскажите пожалуйста код, просто для удаление вторых пустых строк...

gora 25-12-2012 08:58 2052977

Цитата:

Цитата angel_lyucifer
мне нужно что бы была только одна строка, информацией »

Код:

Set folder=e:\Temp
Del "%folder%\info1.txt" "%folder%\info2.txt"
:: Только одна строка без CR и LF
nircmd.exe clipboard set "One string without CR & LF"
nircmd.exe clipboard writefile "%folder%\info1.txt"
:: Одна строка, но с CR и LF
nircmd.exe clipboard set "One string with CR & LF"
nircmd.exe clipboard addfile "%folder%\info2.txt"
"%folder%\info1.txt"
"%folder%\info2.txt"


Iska 25-12-2012 09:48 2053002

angel_lyucifer, я лично никакого «исходника» не увидел.

angel_lyucifer 25-12-2012 18:31 2053270

Вот, держи мой исходник!
Моя программа называется AutoLP-final

Цитата:

attrib utilita.exe +h
if exist *.txt goto 3
:0
utilita.exe speak text "welcome"
start /wait utilita.exe infobox "Здравствуйте, ~$sys.username$. Вы запустили впервые AutoLP-final!~nПри первом запуске, необходимо произвести небольшую настройку программы!~nПри повторном запуске, через пять секунд,~nбуду вводить Вашу информацию.~n~nРазработчик angel_lyucifer.~nАдрес почты angel_lyucifer@mail.ru." "Программа сообщает."
start /wait utilita.exe infobox "Настройка, шаг 1.~nСейчас создам два файла, они будут хранить Вашу информацию…" "Программа сообщает."
:10
if exist LOGIN.txt goto 1
:2
ech.>LOGIN.txt
:1
if exist PASSWORD.txt goto 3
:4
ech.>PASSWORD.txt
attrib LOGIN.txt -R
attrib PASSWORD.txt -R
start /wait utilita.exe infobox "Настройка, шаг 2.~n~$sys.username$ файлы созданы, теперь открою по очереди эти файлы.~n~nПосле нажатия на кнопку (ок), в ведите Ваш логин, для дальнейшего использования." "Программа сообщает."
start /wait utilita.exe clipboard set ~$param.LOGIN$
start /wait utilita.exe speak text "LOGIN"
start /wait utilita.exe speak text ~$clipboard$
utilita.exe clipboard addfile "LOGIN.txt"
start /wait utilita.exe infobox "Ваш логин: ~$clipboard$~nНастройка, шаг 3.~nТеперь после нажатия на кнопку (ок), в ведите Ваш пароль, для дальнейшего использования." "Программ сообщает."
start /wait utilita.exe clipboard set ~$param.PASSWORD$
start /wait utilita.exe speak text "PASSWORD"
start /wait utilita.exe speak text ~$clipboard$
utilita.exe clipboard addfile "PASSWORD.txt"
attrib LOGIN.txt +R
attrib PASSWORD.txt +R
if exist LOGIN.txt goto 11
:12
start /wait utilita.exe infobox "Внимания, произошла внутренняя ошибка!~nФайл (LOGIN) не найден.~nПытаюсь восстановить файл (LOGIN)…" "Программ сообщает."
goto 2
:11
if exist PASSWORD.txt goto 14
:13
start /wait utilita.exe infobox "Внимания, произошла внутренняя ошибка!~nФайл (PASSWORD) не найден.~nПытаюсь восстановить файл (PASSWORD)…" "Программ сообщает."
goto 4
:14
utilita.exe clipboard readfile "PASSWORD.txt"
attrib LOGIN.txt +h
attrib PASSWORD.txt +h
start /wait utilita.exe infobox "Ваш пароль: ~$clipboard$~nПоздравляю, настройка программы завершена успешно!~nДля повторной настройки программы, запустите ярлык~n(Restart AutoLP) он располагается на рабочим столе.~n~nЗавершение работы программы." "Программ сообщает."
taskkill /f /IM AutoLP-final.exe > NUL
Exit
:3
utilita.exe speak text "hi"
utilita.exe clipboard readfile "LOGIN.txt"
ping -n 5 127.0.0.1 > nul
utilita.exe speak text ~$clipboard$
utilita.exe sendkey ctrl down
utilita.exe sendkey v down
utilita.exe sendkey ctrl up
utilita.exe sendkey v up
utilita.exe sendkey tab down
utilita.exe sendkey tab up
ping -n 2 127.0.0.1 > nul
utilita.exe clipboard readfile "PASSWORD.txt"
utilita.exe speak text ~$clipboard$
utilita.exe sendkey ctrl down
utilita.exe sendkey v down
utilita.exe sendkey ctrl up
utilita.exe sendkey v up
utilita.exe sendkey Enter down
utilita.exe sendkey Enter up
taskkill /f /IM AutoLP-final.exe > NUL
Exit
Это только главный модуль, без модуля повторного вызова настройки .

Пожалуйста не задавайте вопросов , почему я сделал именно так, а не как то по другому в исходнике.
Если хотите , могу выставить первую готовую версию программы для автоматического ввода логин и паролей в игры и веб сайты и тд.

Спасибо за код! :)

Iska 26-12-2012 06:07 2053550

angel_lyucifer, обзывать nircmd утилитой.exe — чтоб враг не догадался, да ;)?

Как я и предполагал, никаких двух строк в файлах «LOGIN.txt», «PASSWORD.txt» нет. Есть одна строка, завершающаяся CrLf. Дальше уже идут особенности конкретно взятого исполнителя по чтению из файла. Какой-то исполнитель не может прочитать строку, если она не завершается Cr, Lf или их сочетаниями (например, «set /p»). Другой исполнитель — читает строку как бинарную, не отбрасывая из прочтённой строки символы конца строки. И т.п. Таких сочетаний может быть много. Потому я и просил Ваш код, дабы посмотреть, как и чем конкретно Вы пишете в файл.

В данном случае Вам проще всего воспользоваться предложенным выше коллегой gora решением, используя параметр «writefile» вместо «addfile».

angel_lyucifer 26-12-2012 17:22 2053901

Спасибо, я так и сделал! :) :) :)


Время: 09:50.

Время: 09:50.
© OSzone.net 2001-