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


25

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

Ця програма не має функції "запам'ятати мій пароль".

Тому я хотів би зробити сценарій (бажано .bat-скрипт), що б спочатку скопіюйте мій пароль у буфер обміну - так що мені не потрібно повторно вводити свій пароль на кожну спробу входу, а потім запустити програму (легка частина)

Чи можливо це за допомогою команди MS-DOS? Чи потрібно мені трохи EXE чи іншої мови сценарію?

Я, очевидно, шукаю найшвидше рішення для реалізації.

Заздалегідь дякуємо за Ваші ідеї


Я не думаю, що ви можете вирішити це в. Бат-файл, подивіться на autohotkey він повинен виправити вашу проблему в кілька рядків, якщо ви вже знаєте мову програмування це повинно бути досить легко.
Guillermo Siliceo Trueba

Відповіді:


31

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

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

EDIT
Головне, що команда кліпу, але, як зазначено Asu, лінія схожа echo abc також надсилатиме r \ t Якщо ви хочете цього уникнути, то це дуже стандартне питання, яке вирішується заміною echo texttoecho, с echo|set/p=texttoecho Тому C:\>echo|set/p=texttoecho|clip

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

unxutils має gclip і pclip (вони, здається, не в 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 не мають залежностей / dlls.

і ви можете, звичайно, зробити pclip & gt; a.a, щоб вставити файл. або 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>

У відповідній примітці, у вікні cmd, клацніть лівою кнопкою миші у верхньому лівому куті, потім у властивостях, потім на вкладці параметрів встановіть прапорець у режимі швидкого запуску. Тепер ви можете швидко скопіювати / вставити. натисніть і утримуйте і перетягніть мишею на те, що ви хочете скопіювати, вибравши його, натисніть ENTER для копіювання. Клацніть правою кнопкою миші, щоб вставити.
barlop

і вставити в командний рядок правою кнопкою миші. щоб отримати його в пакетному файлі, вам потрібно буде написати крихітний скрипт або виконуваний файл на іншій мові, наприклад, vbs, perl, c, щоб зробити це або скомпілювати когось stackoverflow.com/questions/1704455/… btw, .vbs використовує набір wshextra.dll clip = createobject ("WshExtra.Clipboard") Схоже, Perl робить це в двох крихітних лініях і не потребує додаткового файлу.
barlop

і веб-сторінку на сайті Петрі, яка згадала його, хоча багато інших просто посилання на файл. petri.co.il/quickly_copy_error_and_display_messages.htm
barlop

також, що посилання згадує raymond chen blogpost, але також коментар на відповідь на цю посилання SO згадує коментар на пост raymond chen, який використовує uncutils gclip і pclip stackoverflow.com/questions/1704455/…
barlop

2
Однак я бачу, що clip.exe доступний під Windows 10.
Bill Rodman

25

параметр barlop не є повністю правильним, оскільки echo додасть символ нового рядка до пароля, який він порушує.

Замість цього потрібно використовувати:

echo|set /p=MyPassWord|clip

Таким чином, рядок буде скопійовано в буфер обміну, як є.


1
Це має бути прийнята відповідь. Допоміг мені з новою лінією символів і лапок.
Piotr Sobczyk

слід було просто відредагувати існуючу відповідь
endolith

@endolith Я не мав привілеїв робити це в той час.
Asu

насправді не так: порожній простір додається в кінці.
Thierry Dalon

@ThierryDalon "| clip" в кінці видаляє простір, так що ви не повинні мати, що додається.
Asu

1

AutoIt v3 можна автоматизувати вікна, що полегшує спроби декількох спроб входу.

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

AutoIt спочатку був розроблений для PC "розгортання" ситуацій для надійної автоматизації та налаштування тисяч ПК. З часом вона стала потужною мовою, яка підтримує складні вирази, функції користувача, петлі та все інше, що очікують ветерани-сценаристи.

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

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


Цей інструмент виглядає дуже корисним, але я буду дотримуватися інструкцій Ctrl-V, тому мені не потрібно більше часу, коли мені не потрібно вводити пароль або вручну натискати Ctrl-C.
Sébastien

@Sebastien: Я не розумію, ви просите скрипт, який допоможе вам легше заповнити пароль, а лише прийняти рішення, яке просто копіює / вставляє? Чи знаєте ви, що якщо ви вибрали кола паролів у полі пароля, ви можете просто скопіювати / вставити їх звідти? Зауважте, що ви можете проголосувати за відповіді зі стрілкою над номером, щоб нагороджувати репутацію.
Tom Wijsman

1
Перша відповідь насправді точно відповідає потребі (досить просто), яку я описав у питанні. Тепер, коли я хочу взяти автоматизацію на крок далі, я обов'язково погляну на AutoIt;)
Sébastien

"коди паролів" Ви маєте на увазі зірочки? Вони не круги! Спробуйте ввести їх величезним шрифтом у Ms Word ;-) Err, добре, я думаю, що деякі програми використовують кола!
barlop

@barlop: Ні, не зірочки. Круги дійсно неправильні, я думаю, вони називаються "крапками", див ця картина . Наступного разу я наберу "символи пароля", які повинні тримати мене в безпеці, поки хтось не придумає "цифри пароля" ...
Tom Wijsman

1

Я сам зіткнувся з подібним сценарієм і ось як я його вирішив.

По-перше, я зберігаю свої паролі в сховищі облікових даних Windows (Windows Vista і вище). Для цього я використовую бібліотеку ключів Python, але ви також можете використовувати щось подібне CredMan (Powershell) керувати ними. Використання сховища облікових даних Windows означає, що пароль ніколи не потрібно вводити в командному рядку, тому навряд чи буде протікати (наприклад, через історію командного рядка).

По-друге, я використовую інструмент, як кліп, щоб скопіювати пароль до буфера обміну.

Ви можете виявити, що ви хочете поєднати два з власним сценарієм PowerShell, який захоплює текст з диспетчера облікових даних і поміщає його в буфер обміну. Сценарій може бути таким простим, як:

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

Потім все, що вам потрібно зробити, це додати пароль до "Деякої системи" в диспетчері облікових даних Windows, і цей сценарій магічно помістить пароль в буфер обміну за командою.


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

0

Найпростіший спосіб зробити це:

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

І ви можете редагувати цей скопійований текст, коли ви хочете просто редагувати цей файл за допомогою програми «Блокнот».


-1 ви повинні підсумувати цю відповідь в одному реченні зверху, перед кроками дитини (якщо ви взагалі включаєте кроки дитини), і це резюме було б зберегти людей, які є технічними від того, щоб читати всі ваші кроки дитини. Запитувач знає, як написати сценарій, щоб він знав, що ctrl-c копіює в буфер обміну і ctrl-v пасти. Як і більшість суперкористувачів, для кого цей сайт призначений. Звичайно, ваша відповідь вже розсипана іншими. Ви тільки що додали кроки дитини, які не потребують питання.
barlop

1
І ви повинні стверджувати, що ви не пропонуєте тут нового рішення, просто розробляючи вже сказане.
barlop

Навіщо повторювати комусь інше?
Asfand Qazi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.