Script do Windows para copiar algum texto para a área de transferência?

27

Estou usando um aplicativo que requer várias tentativas de logon (devido a servidores sobrecarregados).

Este aplicativo não possui o recurso "lembrar minha senha".

Portanto, eu gostaria de criar um script (de preferência um script .bat), que primeiro copiasse minha senha na área de transferência - para que eu não tenha que redigitar minha senha a cada tentativa de logon - e inicie o aplicativo ( parte fácil)

Isso é possível com um comando do MS-DOS? Preciso de um pequeno exe ou de outra linguagem de script?

Obviamente, estou procurando a solução mais rápida de implementar.

Agradecemos antecipadamente por suas idéias

Sébastien
fonte
Eu não acho que você possa resolver isso em um arquivo .bat, dê uma olhada no autohotkey, ele deve resolver seu problema em algumas linhas, se você já conhece uma linguagem de programação, isso deve ser bastante fácil.
Guillermo Siliceo Trueba

Respostas:

33

http://www.petri.co.il/software/clip.zip
Nota - O link de Petri está desativado no momento. Ele conseguiu no Windows Server 2003, mas eu vejo o clip.exe no Windows 7 também. É nas versões do Windows postar o Windows 7 também.

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

EDIT
O principal é o comando clip, mas como apontado por Asu, uma linha como echo abctambém enviará um \ r \ n (que é uma nova linha). Se você quiser evitar isso, esse é um problema muito padrão resolvido substituindo-o echo texttoechopor echo|set/p=texttoechoSoC:\>echo|set/p=texttoecho|clip

Além disso,
é claro que você pode colar com o botão direito do mouse, mas também para uma linha de comando.

O unxutils (uma coisa antiga que não é mantida por mais de uma década) tem gclip e pclip (eles não parecem estar no gnuwin32), com aqueles que você pode copiar e colar via linha de comando.

note que o gnuwin32 também pode não estar atualizado.

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

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

C:\unxutilsblah\usr\local\wbin>

note- você pode simplesmente copiar todo o wbin para c:\unxutils, por exemplo , e os EXEs não possuem dependências / dlls.

e é claro que você pode pclip> aa para colar em um arquivo. ou 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
fonte
Em uma observação relacionada, na janela cmd, clique com o botão esquerdo no canto superior esquerdo e, em seguida, clique em Propriedades e, na guia Opções, marque a caixa que diz modo de edição rápida. Agora você pode copiar / colar rapidamente. clique em segurar e arraste com o mouse sobre o que deseja copiar, selecionando-o, pressione ENTER para copiar. Clique com o botão direito para colar.
barlop
e para colar na linha de comando, clique com o botão direito do mouse. Para obtê-lo em um arquivo em lotes, você precisará escrever um pequeno script ou executável em algum outro idioma, como vbs, perl, c, para fazê-lo ou compilar alguém, stackoverflow.com/questions/1704455/… . .dll set clip = createobject ("WshExtra.Clipboard") Parece que o Perl faz isso em duas pequenas linhas e não precisa de arquivo extra.
Barlop
e a página no site da petri que a mencionou, embora muitas outras apenas tenham um link para o arquivo. petri.co.il/quickly_copy_error_and_display_messages.htm
barlop
Também nesse link menciona a Raymond Chen blogpost mas também um comentário sobre a resposta lá neste link SO menciona um comentário no post Raymond Chen que usa UnxUtils gclip e pclip stackoverflow.com/questions/1704455/...
barlop
2
No entanto, vejo que clip.exe está disponível no Windows 10.
Bill Rodman
26

A opção do barlop não está totalmente correta, porque echoadicionará um caractere de nova linha à sua senha, quebrando-o.

O que você precisa usar é o seguinte:

echo|set /p=MyPassWord|clip

Dessa forma, a string será copiada para a área de transferência como está.

Asu
fonte
1
Esta deve ser uma resposta aceita. Ajudou-me com novos caracteres e aspas.
Piotr Sobczyk 17/09/2013
deveria ter acabado de editar a resposta existente
endolith 24/05
@ endolith Eu não tinha privilégios para fazer isso na época.
Asu
não exatamente como está: um espaço em branco é acrescentado no final.
Thierry Dalon
@ThierryDalon "| clip" no final remove o espaço, portanto você não deve anexá-lo.
Asu
1

O AutoIt v3 pode automatizar janelas, o que facilita a tentativa de várias tentativas de login.

O AutoIt v3 é uma linguagem de script freeware semelhante ao BASIC, projetada para automatizar a GUI do Windows e os scripts gerais. Ele usa uma combinação de pressionamentos de tecla simulados, movimento do mouse e manipulação de janela / controle para automatizar tarefas de uma maneira que não é possível ou confiável com outros idiomas (por exemplo, VBScript e SendKeys). O AutoIt também é muito pequeno, independente e será executado em todas as versões do Windows prontas para uso, sem a necessidade de "tempos de execução" irritantes!

O AutoIt foi projetado inicialmente para situações de "implantação" de PCs para automatizar e configurar com segurança milhares de PCs. Com o tempo, tornou-se uma linguagem poderosa que suporta expressões complexas, funções de usuário, loops e tudo o mais que esperariam por scripts veteranos.

Eles têm bons exemplos, documentação e uma comunidade sólida que pode ajudá-lo com problemas de script.

Embora seja melhor perguntar se eles poderiam resolver o problema com seus servidores sobrecarregados, pois a automatização de solicitações pode piorar o problema para eles ...

Tamara Wijsman
fonte
Essas ferramentas parecem muito úteis, no entanto, continuarei com o manual Ctrl-V, não demorará muito mais tempo agora que eu não preciso digitar a senha ou manualmente com a tecla Ctrl-C.
Sébastien
1
@Sebastien: Eu não entendo, você está pedindo um script para ajudá-lo a preencher a senha com mais facilidade e ainda assim aceitar uma solução que apenas copie / cole? Você sabia que, se você selecionar os círculos de senha na caixa de senha, poderá copiá-los / colá-los a partir daí? Observe que você pode votar nas respostas com a seta acima do número para recompensar a reputação.
Tamara Wijsman
1
A primeira resposta realmente atende exatamente à necessidade (bastante básica) que descrevi na pergunta. Agora, quando eu quiser dar um passo adiante na automação, definitivamente darei uma olhada no AutoIt;) [e sobre o 'voto', ainda não tenho reputação]]
Sébastien
"círculos de senha" Você quer dizer asteriscos? Eles não são círculos! Tente digitá-los com uma fonte enorme no Ms Word ;-) Err, bem, acho que alguns softwares usam círculos!
barlop
@ Barlop: Não, não asteriscos. Os círculos estão realmente errados, acho que são chamados de "pontos", veja esta imagem . Da próxima vez, eu vou digitar "caracteres da senha", que deve manter-me seguro até que alguém inventa "figuras senha" ...
Tamara Wijsman
1

Eu mesmo encontrei um cenário semelhante e aqui está como o resolvi.

Primeiro, eu armazeno minhas senhas no Windows Credential Vault (Windows Vista e superior). Para isso, uso a biblioteca de chaveiros do Python, mas você também pode usar algo como CredMan (Powershell) para gerenciá-los. O uso do Windows Credential Vault significa que a senha nunca precisa ser digitada na linha de comando; portanto, é improvável que vaze (como no histórico da linha de comando).

Segundo, eu uso uma ferramenta como o clipe para copiar a senha na área de transferência.

Você pode querer combinar os dois com seu próprio script do PowerShell, que pega o texto do gerenciador de credenciais e o coloca na área de transferência. O script pode ser algo tão simples como:

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

Depois, basta adicionar a senha a 'Some System' no Windows Credential Manager e esse script colocará magicamente a senha na área de transferência sob comando.

Jason R. Coombs
fonte
1
Obrigado; Eu sugeriria usar o Powershell para acessar a área de transferência. Observe que você pode usar powershell -c <command>de dentro do CMD; portanto, se realmente precisar ser um arquivo em lotes, poderá usar algo como powershell -c [Windows.Forms.Clipboard]::SetText(%PASSWORD%)depois que o CMD for usado para carregar a senha na variável% PASSWORD% (temporária, por favor!).
precisa saber é o seguinte
0

A maneira mais fácil de fazer isso é:

  1. abra o bloco de notas
  2. copie [ CTRL+ C] esta linha:
  3. ECHO | SET /P=mypassword | CLIP
  4. cole [ CTRL+ V] esta linha no bloco de notas
  5. altere "minha senha" para o seu texto e salve-a como "nome do arquivo" .bat

E você pode editar este texto copiado sempre que quiser, apenas editar este arquivo com o Bloco de notas.

user461284
fonte
-1, você deveria ter resumido essa resposta em uma frase na parte superior, antes dos passos do bebê (se você incluir os passos do bebê), e esse resumo seria para salvar as pessoas que são técnicas de ler todos os passos do bebê. O interlocutor sabe como escrever um script para que ele saiba que o Ctrl-C é copiado para a área de transferência e as pastas Ctrl-V. como seria a maioria dos superusuários, para quem é destinado este site. É claro que sua resposta já foi respondida por outras pessoas. Você acabou de adicionar pequenos passos que o interlocutor não precisa.
barlop
1
E você deve declarar que não está oferecendo uma nova solução aqui, apenas elaborando uma já mencionada.
barlop
Por que repetir outra resposta?
Asfand Qazi 19/10/16