Windows скрипт для копирования текста в буфер обмена?

27

Я использую приложение, которое требует несколько попыток входа в систему (из-за перегруженных серверов).

Это приложение не имеет функции «запомнить мой пароль».

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

Возможно ли это с помощью команды MS-DOS? Нужно ли немного exe или другой язык сценариев?

Я, очевидно, ищу самое быстрое решение для реализации.

Заранее спасибо за ваши идеи

Себастьен
источник
Я не думаю, что вы можете решить эту проблему в файле .bat, посмотрите на autohotkey, это должно решить вашу проблему в несколько строк, если вы уже знаете язык программирования, это должно быть довольно легко.
Гильермо Силичео Труба

Ответы:

33

http://www.petri.co.il/software/clip.zip
Примечание. Ссылка Петри в данный момент недоступна. Он получил его с Windows Server 2003, но я вижу clip.exe на Windows 7 тоже. Это на версиях Windows, также публикуют Windows 7.

C:\>echo abc| clip  <-- copies abc to the clipboard.

РЕДАКТИРОВАТЬ
Главное - это команда clip, но, как указал Асу, строка вроде как echo abcтакже отправит \ r \ n (это новая строка). Если вы хотите , чтобы избежать этого, то это очень стандартная проблема решается путем замены echo texttoecho, с echo|set/p=texttoechoSoC:\>echo|set/p=texttoecho|clip

Дальнейшее добавление
Вы можете, конечно, затем вставить правой кнопкой мыши, но и для командной строки.

У unxutils (древняя штука, не поддерживаемая уже более десяти лет) есть gclip и pclip (они, кажется, не в gnuwin32), с теми, которые вы можете копировать и вставлять через командную строку.

примечание: gnuwin32 может и не обновляться.

C:\unxutilsblah\usr\local\wbin>echo a|gclip <-- copy a to clipboard

C:\unxutilsblah\usr\local\wbin>pclip  
a

C:\unxutilsblah\usr\local\wbin>

примечание - вы можете просто скопировать весь wbin, например c:\unxutils, и EXE-файлы не имеют зависимостей / DLL.

и вы можете, конечно, сделать pclip> аа, чтобы вставить в файл. или pclip | somecmd

C:\>(echo b & echo a)<ENTER>
b
a

C:\>

C:\unxutils>(echo b & echo a)|gclip<ENTER>


C:\unxutils>pclip<ENTER>
b
a

C:\unxutils>pclip|sort<ENTER>
a
b

C:\unxutils>
barlop
источник
В связанной заметке в окне cmd щелкните левой кнопкой мыши в левом верхнем углу, затем в свойствах, затем на вкладке параметров установите флажок «Быстрый режим редактирования». Теперь вы можете быстро копировать / вставлять. нажмите и удерживайте и перетащите мышью на то, что вы хотите скопировать, выбрав его, нажмите ENTER, чтобы скопировать. Щелкните правой кнопкой мыши, чтобы вставить.
barlop
и вставить в командную строку, щелкните правой кнопкой мыши. чтобы получить его в пакетном файле, вам нужно написать крошечный скрипт или исполняемый файл на другом языке, например, vbs, perl, c или скомпилировать кого-либо еще. stackoverflow.com/questions/1704455/… кстати, .vbs использует wshextra .dll set clip = createobject ("WshExtra.Clipboard") Похоже, Perl делает это в две крошечные строки и не требует дополнительного файла.
Barlop
и веб-страница на сайте Петри, которая упоминала об этом, хотя многие другие просто ссылаются на файл. petri.co.il/quickly_copy_error_and_display_messages.htm
barlop
также в этой ссылке упоминается пост в блоге Raymond Chen, а также в комментарии к ответу там на этой ссылке SO упоминается комментарий к сообщению Raymond Chen, в котором используются unxutils gclip и pclip stackoverflow.com/questions/1704455/…
barlop
2
Тем не менее, я вижу, что clip.exe доступен под Windows 10.
Билл Родман
26

Опция barlop не совсем верна, потому echoчто добавит символ новой строки к вашему паролю, взломав его.

Вместо этого вам нужно использовать следующее:

echo|set /p=MyPassWord|clip

Таким образом, строка будет скопирована в буфер обмена как есть.

Асу
источник
1
Это должен быть принятый ответ. Помогли мне с новой строкой символа и кавычки.
Петр Собчик
должен был только что отредактировать существующий ответ
эндолит
@endolith У меня не было привилегий делать это в то время.
Асу
не совсем как есть: в конце добавляется пустое место.
Тьерри Далон
@ThierryDalon "| clip" в конце удаляет пробел, поэтому вы не должны добавлять его.
Асу
1

AutoIt v3 может автоматизировать Windows, что облегчает попытки нескольких попыток входа в систему.

AutoIt v3 - это бесплатный базовый скриптовый язык, разработанный для автоматизации графического интерфейса Windows и общих сценариев. Он использует комбинацию смоделированных нажатий клавиш, движения мыши и манипуляций с окнами / элементами управления, чтобы автоматизировать задачи способом, невозможным или ненадежным для других языков (например, VBScript и SendKeys). AutoIt также очень маленький, автономный и будет работать на всех версиях Windows "из коробки" без навязчивых "рабочих циклов"!

Первоначально AutoIt был разработан для «развертывания» ПК, чтобы надежно автоматизировать и настроить тысячи ПК. Со временем он стал мощным языком, который поддерживает сложные выражения, пользовательские функции, циклы и все остальное, что ожидают ветеранов-сценаристов.

У них есть хорошие примеры, документация и солидное сообщество, которое может помочь вам с проблемами сценариев.

Хотя вам лучше спросить, могут ли они решить проблему со своими перегруженными серверами, поскольку автоматизация запросов может только усугубить проблему для них ...

Тамара Вийсман
источник
Этот инструмент выглядит очень полезным, однако я буду придерживаться руководства Ctrl-V, теперь мне не понадобится много времени, так как мне не нужно вводить пароль или вводить его вручную с помощью Ctrl-C.
Себастьян
1
@Sebastien: я не понимаю, вы просите сценарий, который поможет вам легче ввести пароль, и все же просто принять решение, которое просто копирует / вставляет? Знаете ли вы, что если вы выберете кружки для паролей в поле для ввода пароля, вы сможете просто скопировать / вставить их оттуда? Обратите внимание, что вы можете проголосовать за ответы со стрелкой над номером, чтобы получить репутацию.
Тамара Вийсман
1
Первый ответ на самом деле точно соответствует потребности (довольно простой), которую я описал в вопросе. Теперь, когда я хочу сделать автоматизацию на шаг вперед, я определенно взгляну на AutoIt;) [и насчет «голосования», у меня пока нет на это репутации]
Себастьян
"пароль круги" Вы имеете в виду звездочки? Они не круги! Попробуйте набрать их огромным шрифтом в Ms Word ;-) Ну, я думаю, что некоторые программы используют круги!
Бароп
@ barlop: Нет, не звездочки. Круги действительно неправильны, я думаю, что они называются «точки», см. Эту картину . В следующий раз я напишу «символы паролей», которые должны держать меня в безопасности, пока кто-нибудь не изобрел «цифры паролей» ...
Тамара Вийсман
1

Я сам столкнулся с подобным сценарием, и вот как я решил его.

Сначала я храню свои пароли в хранилище учетных данных Windows (Windows Vista и выше). Для этого я использую библиотеку ключей Python, но вы также можете использовать что-то вроде CredMan (Powershell) для управления ими. Использование хранилища учетных данных Windows означает, что пароль никогда не нужно вводить в командной строке, поэтому он вряд ли просочится (например, из истории командной строки).

Во-вторых, я использую такой инструмент, как клип, чтобы скопировать пароль в буфер обмена.

Возможно, вы захотите объединить их с вашим собственным скриптом PowerShell, который извлекает текст из диспетчера учетных данных и помещает его в буфер обмена. Сценарий может быть таким простым:

$cred = Read-Creds 'Some System'
[Windows.Forms.Clipboard]::SetText($cred.CredentialBlob)

Затем все, что вам нужно сделать, это добавить пароль в «Some System» в Windows Credential Manager, и этот скрипт волшебным образом введет пароль в буфер обмена по команде.

Джейсон Р. Кумбс
источник
1
Спасибо; Я собирался предложить использовать Powershell для доступа к буферу обмена. Обратите внимание, что вы можете использовать powershell -c <command>из CMD, поэтому, если это действительно командный файл, он может использовать что-то вроде powershell -c [Windows.Forms.Clipboard]::SetText(%PASSWORD%)того, как CMD использовался для загрузки пароля в (временную, пожалуйста!)% PASSWORD% переменную.
CBHacking 26.09.16
0

Простой способ сделать это:

  1. открыть блокнот
  2. скопируйте [ CTRL+ C] эту строку:
  3. ECHO | SET /P=mypassword | CLIP
  4. вставьте [ CTRL+ V] эту строку в блокнот
  5. и измените «mypassword» для своего текста, затем сохраните его как «filename» .bat

И вы можете редактировать этот скопированный текст всякий раз, когда вы хотите просто отредактировать этот файл с помощью блокнота.

user461284
источник
-1 Вы должны были суммировать этот ответ в одном предложении вверху, до того, как шаги вашего ребенка (если вы вообще включали шаги ребенка), и это резюме должно было бы избавить технических специалистов от необходимости читать все шаги вашего ребенка. Спрашивающий знает, как написать скрипт, поэтому он знает, что ctrl-c копирует в буфер обмена и вставляет ctrl-v. как и большинство супер пользователей, для которых этот сайт предназначен. Конечно, ваш ответ уже удовлетворен другими. Вы только что добавили шаги ребенка, в которых спрашивающий не нуждается.
Бароп
1
И вам следует заявить, что вы не предлагаете здесь новое решение, а просто развиваете уже заявленное.
Бароп
Зачем повторять кому-то еще ответ?
Асфанд Кази