Script Windows pour copier du texte dans le presse-papiers?

27

J'utilise une application qui nécessite plusieurs tentatives de connexion (en raison de serveurs surchargés).

Cette application n'a pas de fonctionnalité "mémoriser mon mot de passe".

Par conséquent, je voudrais créer un script (de préférence un script .bat), qui copierait d' abord mon mot de passe dans le presse-papiers - pour que je n'ai pas à retaper mon mot de passe à chaque tentative de connexion -, puis lancer l'application ( partie facile)

Est-ce possible avec une commande MS-DOS? Ai-je besoin d'un petit exe ou d'un autre langage de script?

Je recherche évidemment la solution la plus rapide à mettre en œuvre.

Merci d'avance pour vos idées

Sébastien
la source
Je ne pense pas que vous puissiez résoudre ce problème dans un fichier .bat, jetez un œil à autohotkey, il devrait résoudre votre problème en quelques lignes, si vous connaissez déjà un langage de programmation, cela devrait être assez facile.
Guillermo Siliceo Trueba

Réponses:

33

http://www.petri.co.il/software/clip.zip
Remarque - Le lien de Petri est actuellement en panne. Il l'a obtenu de Windows Server 2003 mais je vois aussi clip.exe sur Windows 7. C'est également sur les versions Windows après Windows 7.

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

EDIT
L'essentiel est cette commande clip mais comme l'a souligné Asu, une ligne comme echo abcenverra également un \ r \ n (qui est une nouvelle ligne). Si vous voulez éviter cela, alors c'est un problème très standard résolu en remplaçant echo texttoecho, par echo|set/p=texttoechoSoC:\>echo|set/p=texttoecho|clip

autre ajout
Vous pouvez bien sûr ensuite coller avec un clic droit, mais pour une ligne de commande coller aussi.

unxutils (une chose ancienne qui n'a pas été maintenue depuis plus d'une décennie) a gclip et pclip (ils ne semblent pas être dans gnuwin32), avec ceux que vous pouvez copier et coller via la ligne de commande.

note- gnuwin32 n'est peut-être pas aussi mis à jour.

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- vous pouvez simplement copier tout le wbin par exemple c:\unxutils, et les EXE n'ont pas de dépendances / dll.

et vous pouvez bien sûr faire pclip> aa pour coller dans un fichier. 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
la source
Sur une note connexe, dans la fenêtre cmd, cliquez avec le bouton gauche en haut à gauche, puis sur propriétés, puis dans l'onglet options, cochez la case qui indique le mode quickedit. Vous pouvez maintenant copier / coller rapidement. cliquez et maintenez avec la souris sur ce que vous voulez copier en le sélectionnant, appuyez sur ENTER pour copier. Faites un clic droit pour coller.
barlop
et pour coller sur la ligne de commande, cliquez avec le bouton droit de la souris. pour l'obtenir dans un fichier batch, vous devrez écrire un petit script ou exécutable dans un autre langage comme vbs, perl, c pour le faire ou compiler quelqu'un elses stackoverflow.com/questions/1704455/… btw, .vbs utilise wshextra .dll set clip = createobject ("WshExtra.Clipboard") On dirait que Perl le fait en deux petites lignes et n'a besoin d'aucun fichier supplémentaire.
barlop
et la page Web sur le site de Petri qui l'a mentionné, bien que beaucoup d'autres aient simplement un lien vers le fichier. petri.co.il/quickly_copy_error_and_display_messages.htm
barlop
également ce lien mentionne le blogpost de raymond chen mais aussi un commentaire sur la réponse sur ce lien SO mentionne un commentaire sur le post de raymond chen qui utilise unxutils gclip et pclip stackoverflow.com/questions/1704455/…
barlop le
2
Cependant, je vois que clip.exe est disponible sous Windows 10.
Bill Rodman
26

L'option de barlop n'est pas entièrement correcte, car echoelle ajoutera un caractère de nouvelle ligne à votre mot de passe en le cassant.

Ce que vous devez utiliser à la place est le suivant:

echo|set /p=MyPassWord|clip

De cette façon, la chaîne sera copiée dans le presse-papiers telle quelle.

Asu
la source
1
Cela devrait être une réponse acceptée. M'a aidé avec le nouveau caractère de ligne et les guillemets.
Piotr Sobczyk
devrait juste avoir édité la réponse existante
endolith
@endolith Je n'avais pas les privilèges pour le faire à l'époque.
Asu
pas vraiment tel quel: un espace vide est ajouté à la fin.
Thierry Dalon
@ThierryDalon "| clip" à la fin supprime l'espace, vous ne devriez donc pas y avoir ajouté.
Asu
1

AutoIt v3 peut automatiser les fenêtres, ce qui facilite les tentatives de connexion.

AutoIt v3 est un langage de script de type BASIC gratuit conçu pour automatiser l'interface graphique Windows et les scripts généraux. Il utilise une combinaison de frappes simulées, de mouvements de souris et de manipulation de fenêtres / contrôles afin d'automatiser les tâches d'une manière impossible ou fiable avec d'autres langues (par exemple VBScript et SendKeys). AutoIt est également très petit, autonome et fonctionnera sur toutes les versions de Windows prêtes à l'emploi sans aucun "temps d'exécution" ennuyeux requis!

AutoIt a été initialement conçu pour les situations de «déploiement» de PC afin d'automatiser et de configurer de manière fiable des milliers de PC. Au fil du temps, il est devenu un langage puissant qui prend en charge des expressions complexes, des fonctions utilisateur, des boucles et tout ce que les scripteurs chevronnés attendraient.

Ils ont de bons exemples, de la documentation et une communauté solide qui peut vous aider avec des problèmes de script.

Cependant, vous feriez mieux de leur demander s'ils pourraient résoudre le problème avec leurs serveurs surchargés, car l'automatisation des demandes pourrait aggraver le problème pour eux ...

Tamara Wijsman
la source
Cet outil semble très utile, mais je m'en tiendrai au Ctrl-V manuel, cela ne me prendra plus beaucoup de temps maintenant que je n'ai plus à taper le mot de passe ou manuellement Ctrl-C.
Sébastien
1
@Sebastien: Je ne comprends pas, vous demandez un script pour vous aider à remplir le mot de passe plus facilement et pourtant accepter simplement une solution qui ne fait qu'un copier / coller? Saviez-vous que si vous sélectionnez les cercles de mot de passe dans la zone de mot de passe, vous pouvez simplement les copier / coller à partir de là? Veuillez noter que vous pouvez voter pour les réponses avec la flèche au-dessus du nombre pour récompenser la réputation.
Tamara Wijsman
1
La première réponse répond en fait exactement au besoin (assez basique) que j'ai décrit dans la question. Maintenant, quand je veux pousser l'automatisation un peu plus loin, je vais certainement jeter un coup d'œil à AutoIt;) [et à propos du 'vote up', je n'ai pas encore la réputation de le faire]
Sébastien
"cercles de mots de passe" Voulez-vous dire des astérisques? Ce ne sont pas des cercles! Essayez de les taper avec une énorme police dans Ms Word ;-) Euh, eh bien, je suppose que certains logiciels utilisent des cercles!
barlop le
@barlop: Non, pas des astérisques. Les cercles sont en effet faux, je pense qu'ils sont appelés "points", voir cette photo . La prochaine fois, je taperai des "caractères de mot de passe" qui devraient me garder en sécurité jusqu'à ce que quelqu'un invente des "chiffres de mot de passe" ...
Tamara Wijsman
1

J'ai moi-même rencontré un scénario similaire et voici comment je l'ai résolu.

Tout d'abord, je stocke mes mots de passe dans le coffre des informations d'identification Windows (Windows Vista et versions ultérieures). Pour cela, j'utilise la bibliothèque de porte-clés de Python, mais vous pouvez tout aussi bien utiliser quelque chose comme CredMan (Powershell) pour les gérer. L'utilisation de Windows Credential Vault signifie que le mot de passe ne doit jamais être tapé sur la ligne de commande, il est donc peu probable qu'il fuit (par exemple via un historique de ligne de commande).

Deuxièmement, j'utilise un outil comme un clip pour copier le mot de passe dans le presse-papiers.

Il se peut que vous souhaitiez combiner les deux avec votre propre script PowerShell qui récupère le texte du gestionnaire d'informations d'identification et le place dans le presse-papiers. Le script pourrait être quelque chose d'aussi simple que:

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

Ensuite, tout ce que vous avez à faire est d'ajouter le mot de passe à 'Some System' dans Windows Credential Manager et ce script placera comme par magie le mot de passe dans le presse-papiers.

Jason R. Coombs
la source
1
Merci; J'allais suggérer d'utiliser Powershell pour accéder au presse-papiers. Notez que vous pouvez utiliser à powershell -c <command>partir de CMD, donc s'il doit s'agir d'un fichier batch, il pourrait utiliser quelque chose comme powershell -c [Windows.Forms.Clipboard]::SetText(%PASSWORD%)après que CMD a été utilisé pour charger le mot de passe dans la variable (temporaire, s'il vous plaît!)% PASSWORD%.
CBHacking du
0

La façon la plus simple de le faire est:

  1. ouvrir le bloc-notes
  2. copiez [ CTRL+ C] cette ligne:
  3. ECHO | SET /P=mypassword | CLIP
  4. collez [ CTRL+ V] cette ligne dans le Bloc-notes
  5. et changez "mypassword" pour votre texte, puis enregistrez-le sous "filename" .bat

Et vous pouvez modifier ce texte copié à tout moment si vous voulez simplement modifier ce fichier avec le Bloc-notes.

user461284
la source
-1 vous auriez dû résumer cette réponse en une phrase en haut, avant vos pas de bébé (si vous incluez des pas de bébé du tout), et ce résumé serait de sauver les personnes techniques d'avoir à lire tous vos pas de bébé. L'interrogateur sait comment écrire un script, il sait donc que ctrl-c copie dans le presse-papiers et les pâtes ctrl-v. comme le feraient la plupart des super utilisateurs, à qui s'adresse ce site. Bien sûr, votre réponse est déjà assortie par d'autres. Vous venez d'ajouter de petits pas dont le questionneur n'a pas besoin.
barlop
1
Et vous devez déclarer que vous n'offrez pas ici une nouvelle solution, juste en développant celle déjà indiquée.
barlop
Pourquoi répéter quelqu'un d'autre réponse?
Asfand Qazi