Windows-Skript zum Kopieren von Text in die Zwischenablage?

27

Ich verwende eine Anwendung, die mehrere Anmeldeversuche erfordert (wegen überlasteter Server).

Diese App verfügt nicht über die Funktion "Passwort speichern".

Daher möchte ich ein Skript (vorzugsweise ein .bat-Skript) erstellen , das zuerst mein Passwort in die Zwischenablage kopiert, damit ich mein Passwort nicht bei jedem Anmeldeversuch erneut eingeben muss, und dann die Anwendung startet ( einfacher Teil)

Ist das mit einem MS-DOS-Befehl möglich? Benötige ich eine kleine exe oder eine andere Skriptsprache?

Ich bin offensichtlich auf der Suche nach der schnellsten Lösung für die Implementierung.

Vielen Dank im Voraus für Ihre Ideen

Sébastien
quelle
Ich glaube nicht, dass Sie dies in einer .bat-Datei lösen können. Sehen Sie sich autohotkey an. Es sollte Ihr Problem in wenigen Zeilen beheben. Wenn Sie bereits eine Programmiersprache kennen, sollte dies ziemlich einfach sein.
Guillermo Siliceo Trueba

Antworten:

33

http://www.petri.co.il/software/clip.zip
Hinweis: Der Link von Petri ist derzeit nicht verfügbar. Er hat es von Windows Server 2003 bekommen, aber ich sehe clip.exe auch unter Windows 7. Es ist auf Windows-Versionen nach Windows 7 auch.

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

BEARBEITEN
Die Hauptsache ist der Befehl clip, aber wie von Asu hervorgehoben, echo abcsendet eine Zeile wie \ r \ n (das ist eine neue Zeile). Wenn Sie das vermeiden wollen, dann ist das ein sehr normales Problem, das durch Ersetzen echo texttoechodurch echo|set/p=texttoechoSo gelöst wirdC:\>echo|set/p=texttoecho|clip

weitere ergänzung
Sie können dann natürlich mit der rechten Maustaste einfügen, aber für eine Befehlszeile auch einfügen.

unxutils (ein altes Ding, das seit mehr als einem Jahrzehnt nicht mehr gepflegt wird) hat gclip und pclip (sie scheinen nicht in gnuwin32 zu sein), mit denen Sie über die Befehlszeile kopieren und einfügen können.

note- gnuwin32 ist möglicherweise auch nicht so aktualisiert.

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

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

C:\unxutilsblah\usr\local\wbin>

Beachten Sie, dass Sie einfach das gesamte wbin nach zB kopieren können c:\unxutilsund die EXEs keine Abhängigkeiten / DLLs haben.

und Sie können natürlich auch pclip> aa ausführen, um es in eine Datei einzufügen. oder 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
quelle
Klicken Sie in einem verwandten Hinweis im Cmd-Fenster oben links auf Eigenschaften und aktivieren Sie auf der Registerkarte Optionen das Kontrollkästchen für den Schnellbearbeitungsmodus. Jetzt können Sie schnell kopieren / einfügen. Klicken Sie auf Gedrückthalten und ziehen Sie mit der Maus über das Objekt, das Sie kopieren möchten. Drücken Sie zum Kopieren die EINGABETASTE. Rechtsklick zum Einfügen.
Barlop
Zum Einfügen in die Befehlszeile klicken Sie mit der rechten Maustaste. es in einer Batch - Datei zu erhalten, müssen Sie es oder Kompilierung jemand Elses ein kleines Skript oder ausführbare Datei in einer anderen Sprache wie vbs, Perl, C zu schreiben , zu tun stackoverflow.com/questions/1704455/... btw, verwendet vbs wshextra .dll set clip = createobject ("WshExtra.Clipboard") Sieht aus, als würde Perl dies in zwei winzigen Zeilen tun und benötigt keine zusätzliche Datei.
Barlop
und die Webseite auf petris Seite, auf der es erwähnt wurde, obwohl viele andere nur auf die Datei verlinken. petri.co.il/quickly_copy_error_and_display_messages.htm
Barlop
Blogpost auch , dass Link erwähnt die raymond chen , sondern auch ein Kommentar über die Antwort gibt auf dieser SO Link erwähnt einen Kommentar über den raymond chen Beitrag , dass Anwendungen UnxUtils gclip und pCLIP stackoverflow.com/questions/1704455/...
barlop
2
Allerdings sehe ich, dass clip.exe unter Windows 10 verfügbar ist.
Bill Rodman
26

Die Option von barlop ist nicht ganz korrekt, da echoIhr Kennwort durch ein Zeilenumbruchzeichen unterbrochen wird.

Was Sie stattdessen verwenden müssen, ist Folgendes:

echo|set /p=MyPassWord|clip

Auf diese Weise wird die Zeichenfolge unverändert in die Zwischenablage kopiert.

Asu
quelle
1
Dies sollte eine akzeptierte Antwort sein. Hat mir mit neuen Zeilenzeichen und Anführungszeichen geholfen.
Piotr Sobczyk
sollte gerade die vorhandene Antwort bearbeitet haben
Endolith
@endolith Ich hatte zu der Zeit nicht die Privilegien, das zu tun.
Ab
Nicht wirklich so wie es ist: Am Ende wird ein Leerzeichen angehängt.
Thierry Dalon
@ThierryDalon "| clip" am Ende entfernt das Leerzeichen, daher sollte das nicht angehängt werden.
Asu
1

AutoIt v3 kann Windows automatisieren, was das Ausprobieren mehrerer Anmeldeversuche vereinfacht.

AutoIt v3 ist eine Freeware BASIC-ähnliche Skriptsprache, die zur Automatisierung der Windows-Benutzeroberfläche und der allgemeinen Skriptsprache entwickelt wurde. Es verwendet eine Kombination aus simulierten Tastenanschlägen, Mausbewegungen und Fenster- / Steuerungsmanipulationen, um Aufgaben in einer Weise zu automatisieren, die mit anderen Sprachen (z. B. VBScript und SendKeys) nicht möglich oder zuverlässig ist. AutoIt ist auch sehr klein, in sich geschlossen und läuft auf allen Windows-Versionen ohne lästige "Laufzeiten"!

AutoIt wurde ursprünglich für PC-Bereitstellungssituationen entwickelt, um Tausende von PCs zuverlässig zu automatisieren und zu konfigurieren. Im Laufe der Zeit ist es eine mächtige Sprache geworden, die komplexe Ausdrücke, Benutzerfunktionen, Schleifen und alles andere unterstützt, was erfahrene Skripter erwarten würden.

Sie haben gute Beispiele, Dokumentation und eine solide Community, die Ihnen bei Skriptproblemen helfen kann.

Sie sollten sich jedoch fragen, ob das Problem mit den überlasteten Servern behoben werden kann, da die Automatisierung von Anforderungen das Problem möglicherweise nur verschlimmert.

Tamara Wijsman
quelle
Dieses Tool sieht sehr nützlich aus, aber ich werde mich an die manuelle Strg-V halten. Es dauert nicht mehr lange, da ich das Passwort nicht eingeben oder manuell Strg-C drücken muss.
Sébastien
1
@Sebastien: Ich verstehe nicht, Sie fragen nach einem Skript, mit dem Sie das Passwort einfacher eingeben können, und akzeptieren dennoch eine Lösung, die nur das Kopieren / Einfügen übernimmt? Wussten Sie, dass Sie, wenn Sie die Kennwortkreise im Kennwortfeld auswählen, diese einfach von dort kopieren / einfügen können? Bitte beachte, dass du Antworten mit dem Pfeil über der Zahl abstimmen kannst, um das Ansehen zu belohnen.
Tamara Wijsman
1
Die erste Antwort erfüllt genau das Bedürfnis (ziemlich einfach), das ich in der Frage beschrieben habe. Wenn ich jetzt die Automatisierung einen Schritt weiter gehen möchte, nehme ich auf jeden Fall einen Blick auf AutoIt;) [und über die ‚vote up‘, ich habe nicht den Ruf für sie noch]
Sébastien
"Passwortkreise" Meinst du Sternchen? Sie sind keine Kreise! Versuche, sie mit einer riesigen Schriftart in Ms Word zu schreiben ;-) Ähm, ich denke, einige Software verwendet Kreise!
Barlop
@barlop: Nein, keine Sternchen. Kreise sind in der Tat falsch, ich denke, sie heißen "Punkte", siehe dieses Bild . Nächstes Mal gebe ich "Passwort-Zeichen" ein, die mich schützen sollen, bis jemand "Passwort-Zahlen" erfindet ...
Tamara Wijsman
1

Ich selbst bin auf ein ähnliches Szenario gestoßen und habe es folgendermaßen gelöst.

Zuerst speichere ich meine Passwörter im Windows Credential Vault (Windows Vista und höher). Dafür verwende ich die Schlüsselbundbibliothek von Python, aber Sie können sie genauso gut mit CredMan (Powershell) verwalten. Die Verwendung des Windows-Tresors für Anmeldeinformationen bedeutet, dass das Kennwort niemals in die Befehlszeile eingegeben werden muss und daher wahrscheinlich nicht verloren geht (z. B. durch einen Befehlszeilenverlauf).

Zweitens benutze ich ein Tool wie clip, um das Passwort in die Zwischenablage zu kopieren.

Möglicherweise möchten Sie diese beiden Elemente mit Ihrem eigenen PowerShell-Skript kombinieren, das den Text aus dem Berechtigungsnachweis-Manager abruft und in die Zwischenablage legt. Das Skript könnte so einfach sein wie:

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

Alles, was Sie dann tun müssen, ist, das Kennwort zu "Some System" im Windows Credential Manager hinzuzufügen, und dieses Skript legt das Kennwort auf magische Weise auf Befehl in die Zwischenablage.

Jason R. Coombs
quelle
1
Vielen Dank; Ich wollte vorschlagen, Powershell zu verwenden, um auf die Zwischenablage zuzugreifen. Beachten Sie, dass Sie powershell -c <command>CMD verwenden können. Wenn es sich also tatsächlich um eine Batch-Datei handeln muss, kann dies powershell -c [Windows.Forms.Clipboard]::SetText(%PASSWORD%)beispielsweise nach dem Laden des Kennworts in die (temporäre, bitte!)% PASSWORD% -Variable durch CMD erfolgen.
CBHacking
0

Der einfachste Weg dies zu tun ist:

  1. Öffnen Sie den Editor
  2. kopiere [ CTRL+ C] diese Zeile:
  3. ECHO | SET /P=mypassword | CLIP
  4. Füge [ CTRL+ V] diese Zeile in den Editor ein
  5. und ändere "mypassword" für deinen Text und speichere ihn als "filename" .bat

Und Sie können diesen kopierten Text jederzeit mit Notepad bearbeiten.

user461284
quelle
-1 Sie sollten diese Antwort in einem Satz oben vor Ihren Babyschritten zusammengefasst haben (falls Sie überhaupt Babyschritte einschließen), und diese Zusammenfassung soll Personen, die technisch versiert sind, davon abhalten, alle Ihre Babyschritte zu lesen. Der Fragesteller kann ein Skript schreiben, sodass er weiß, dass Strg-C in die Zwischenablage kopiert und Strg-V einfügt. Wie die meisten Superuser, für die diese Seite bestimmt ist. Natürlich ist Ihre Antwort bereits von anderen beantwortet. Sie haben gerade kleine Schritte hinzugefügt, die der Fragesteller nicht benötigt.
Barlop
1
Und Sie sollten angeben, dass Sie hier keine neue Lösung anbieten, sondern nur eine bereits erwähnte ausarbeiten.
Barlop
Warum jemand anderes antworten?
Asfand Qazi