web-dev-qa-db-fra.com

Un script Windows pour copier du texte dans le presse-papier?

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

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

Par conséquent, je voudrais faire un script (de préférence un script .bat), qui copierait d'abord mon mot de passe dans le presse-papiers - afin 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 cherche évidemment la solution la plus rapide à mettre en œuvre.

Merci d'avance pour vos idées

26
Sébastien

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

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

MODIFIER
La chose principale est cette commande de clip mais comme l'a souligné Asu, une ligne comme echo abc enverra é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=texttoecho Donc C:\>echo|set/p=texttoecho|clip

addition supplémentaire
Vous pouvez bien sûr ensuite coller avec un clic droit, mais aussi pour une ligne de commande coller.

unxutils a gclip et pclip (ils ne semblent pas être dans gnuwin32), avec ceux que vous pouvez copier et coller via la ligne de commande.

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

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

C:\unxutilsblah\usr\local\wbin>

remarque: vous pouvez simplement copier tout le contenu de wbin, par exemple c:\unxutils et les EXE n'ont pas de dépendances/dll.

et vous pouvez bien sûr faire pclip> a.a 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>
31
barlop

l'option de barlop n'est pas tout à fait correcte car echo ajoutera un caractère de nouvelle ligne à votre mot de passe.

Ce que vous devez utiliser à la place est la suivante:

echo|set /p=MyPassWord|clip

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

25
Asu

AutoIt v3 peut automatiser Windows, ce qui facilite l’essai de plusieurs tentatives de connexion.

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

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 les expressions complexes, les fonctions utilisateur, les boucles et tout ce que les scripteurs expérimentés peuvent espérer.

Ils ont de bons exemples, de la documentation et une communauté solide qui peut vous aider à résoudre les problèmes de script.

Vous feriez mieux de demander s'ils pourraient résoudre le problème avec leurs serveurs surchargés, car l'automatisation des requêtes pourrait aggraver le problème ...

1
Tamara Wijsman

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 références Windows (Windows Vista et supérieur). Pour cela, j'utilise la bibliothèque de clés de Python, mais vous pouvez également utiliser quelque chose comme CredMan (Powershell) pour les gérer. L'utilisation du coffre-fort des informations d'identification Windows signifie que le mot de passe ne doit jamais être saisi sur la ligne de commande. Il est donc peu probable qu'il fuie (par exemple, via un historique de ligne de commande).

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

Vous voudrez peut-être combiner les deux avec votre propre script PowerShell qui récupère le texte du gestionnaire des 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 le placera comme par magie dans le presse-papiers sur commande.

1
Jason R. Coombs

La façon la plus simple de procéder est la suivante:

  1. bloc-notes ouvert
  2. copie [CTRL + C] cette ligne:
  3. ECHO | SET /P=mypassword | CLIP
  4. coller [CTRL + V] cette ligne à Notepad
  5. et changez "mypassword" pour votre texte, puis enregistrez-le sous le nom "filename" .bat

Et vous pouvez éditer ce texte copié quand vous le souhaitez, éditez simplement ce fichier avec le Bloc-notes.

0
user461284