25

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

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

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

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

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

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

5 ответов5

31

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=texttoecho So 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 не имеют зависимостей /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>
25

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

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

echo|set /p=MyPassWord|clip

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

1

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

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

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

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

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

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, и этот скрипт волшебным образом введет пароль в буфер обмена по команде.

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .