Skrypt systemu Windows, aby skopiować tekst do schowka?

27

Korzystam z aplikacji, która wymaga kilku prób zalogowania się (z powodu przeciążenia serwerów).

Ta aplikacja nie ma funkcji „zapamiętaj moje hasło”.

Dlatego chciałbym utworzyć skrypt (najlepiej skrypt .bat), który najpierw skopiowałby moje hasło do schowka - aby nie musiałem ponownie wpisywać hasła przy każdej próbie logowania - a następnie uruchomić aplikację ( łatwa część)

Czy jest to możliwe dzięki poleceniu MS-DOS? Czy potrzebuję trochę exe lub innego języka skryptowego?

Oczywiście szukam najszybszego rozwiązania do wdrożenia.

Z góry dziękuję za twoje pomysły

Sébastien
źródło
Nie sądzę, że możesz rozwiązać ten problem w pliku .bat, rzuć okiem na autohotkey, powinien rozwiązać twój problem w kilku wierszach, jeśli znasz już język programowania, powinno to być dość łatwe.
Guillermo Siliceo Trueba

Odpowiedzi:

33

http://www.petri.co.il/software/clip.zip
Uwaga - Link Petri jest obecnie nieczynny. Dostał go z Windows Server 2003, ale widzę też clip.exe na Windows 7. Jest również w wersjach Windows po Windows 7.

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

EDYCJA
Najważniejsze jest to polecenie klipu, ale jak wskazał Asu, linia podobna echo abcrównież wyśle ​​\ r \ n (która jest nową linią). Jeśli chcesz tego uniknąć, to bardzo standardowy problem rozwiązany przez zastąpienie echo texttoechogo echo|set/p=texttoechoSoC:\>echo|set/p=texttoecho|clip

dalsze dodawanie
Możesz oczywiście wkleić prawym przyciskiem myszy, ale także wkleić z wiersza poleceń.

unxutils (starożytna rzecz, która nie jest utrzymywana przez ponad dekadę) ma gclip i pclip (nie wydaje się, aby były w gnuwin32), z tymi, które można kopiować i wklejać za pomocą wiersza poleceń.

Uwaga: gnuwin32 może również nie być tak zaktualizowany.

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

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

C:\unxutilsblah\usr\local\wbin>

Uwaga - możesz po prostu skopiować wszystkie pliki wbin do np. c:\unxutils, a pliki EXE nie mają zależności / bibliotek dll.

i oczywiście możesz zrobić pclip> aa, aby wkleić do pliku. lub 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
źródło
W powiązanej notatce w oknie cmd kliknij lewy górny lewy przycisk, a następnie właściwości, a następnie na karcie opcji zaznacz pole z napisem „Tryb szybkiej edycji”. Teraz możesz szybko kopiować / wklejać. kliknij przytrzymaj i przeciągnij myszą nad tym, co chcesz skopiować, zaznacz go, naciśnij ENTER, aby skopiować. Kliknij prawym przyciskiem, aby wkleić.
barlop
i aby wkleić do linii poleceń, kliknij prawym przyciskiem myszy. aby uzyskać go w pliku wsadowym, musisz napisać mały skrypt lub plik wykonywalny w innym języku, takim jak vbs, perl, c, aby to zrobić lub skompilować komuś inny stackoverflow.com/questions/1704455/… btw, .vbs używa wshextra .dll set clip = createobject ("WshExtra.Clipboard") Wygląda na to, że Perl robi to w dwóch małych liniach i nie potrzebuje dodatkowego pliku.
barlop
oraz strona internetowa na stronie Petriego, która wspomniała o tym, chociaż wiele innych stron po prostu prowadzi do tego pliku. petri.co.il/quickly_copy_error_and_display_messages.htm
barlop
również ten link wspomina o blogu raymond chen, ale także komentarz do odpowiedzi na ten link SO wspomina o komentarzu do raymond chen, który używa unxutils gclip i pclip stackoverflow.com/questions/1704455/...
barlop
2
Widzę jednak, że clip.exe jest dostępny pod Windows 10.
Bill Rodman,
26

opcja barlop nie jest całkowicie poprawna, ponieważ echododa znak nowego wiersza do hasła, łamiąc je.

Zamiast tego musisz użyć:

echo|set /p=MyPassWord|clip

W ten sposób ciąg zostanie skopiowany do schowka bez zmian.

Asu
źródło
1
To powinna być zaakceptowana odpowiedź. Pomógł mi z nowym znakiem linii i cudzysłowami.
Piotr Sobczyk
powinienem właśnie zredagować istniejącą odpowiedź
endolith
@endolith Nie miałem wtedy uprawnień, aby to robić.
Asu
niezupełnie jak jest: na końcu dołączana jest spacja.
Thierry Dalon
@ThierryDalon „| clip” na końcu usuwa spację, więc nie powinieneś tego dodawać.
Asu
1

AutoIt v3 może zautomatyzować okna, co sprawia, że ​​próba kilku prób logowania jest łatwa.

AutoIt v3 to darmowy, podobny do BASIC język skryptowy zaprojektowany do automatyzacji graficznego interfejsu użytkownika Windows i ogólnych skryptów. Wykorzystuje kombinację symulowanych naciśnięć klawiszy, ruchu myszy i manipulacji oknami / kontrolkami w celu automatyzacji zadań w sposób niemożliwy lub niezawodny w przypadku innych języków (np. VBScript i SendKeys). AutoIt jest również bardzo mały, samodzielny i będzie działał na wszystkich wersjach systemu Windows od razu po wyjęciu z pudełka, bez żadnych irytujących „środowisk uruchomieniowych”!

AutoIt został początkowo zaprojektowany z myślą o „wdrożeniach” komputerów w celu niezawodnej automatyzacji i konfiguracji tysięcy komputerów. Z biegiem czasu stał się potężnym językiem, który obsługuje złożone wyrażenia, funkcje użytkownika, pętle i wszystko, czego oczekują weterani skryptów.

Mają dobre przykłady, dokumentację i solidną społeczność, która może pomóc w problemach ze skryptem.

Chociaż lepiej byłoby zapytać, czy mogą rozwiązać problem z przeciążonymi serwerami, ponieważ automatyzacja żądań może tylko pogorszyć ich problem ...

Tamara Wijsman
źródło
To narzędzie wygląda bardzo przydatne, ale będę trzymać się instrukcji Ctrl - V, nie zajmie mi to dużo dłużej, ponieważ nie muszę wpisywać hasła ani ręcznie Ctrl-C.
Sébastien
1
@Sebastien: Nie rozumiem, prosisz o skrypt, który pomoże ci łatwiej wypełnić hasło, a jednocześnie akceptujesz rozwiązanie, które kopiuje / wkleja? Czy wiesz, że jeśli wybierzesz kręgi hasła w polu hasła, możesz je po prostu skopiować / wkleić? Pamiętaj, że możesz głosować na odpowiedzi ze strzałką nad liczbą, aby nagrodzić reputację.
Tamara Wijsman,
1
Pierwsza odpowiedź faktycznie dokładnie spełnia potrzebę (dość podstawową), którą opisałem w pytaniu. Teraz, gdy chcę posunąć automatyzację o krok dalej, zdecydowanie spojrzę na AutoIt;) [a jeśli chodzi o „głosowanie”, nie mam jeszcze na to reputacji]
Sébastien
„kółka z hasłami” Czy masz na myśli gwiazdki? To nie są koła! Spróbuj wpisać je wielką czcionką w Ms Word ;-) Err, cóż, wydaje mi się, że niektóre programy używają kół!
barlop
@barlop: Nie, nie gwiazdki. Kręgi są rzeczywiście błędne, myślę, że nazywane są „kropkami”, patrz ten obrazek . Następnym razem napiszę „znaki hasła”, które powinny mnie chronić, dopóki ktoś nie wymyśli „cyfr hasła” ...
Tamara Wijsman,
1

Sam spotkałem podobny scenariusz i oto jak go rozwiązałem.

Najpierw przechowuję moje hasła w Windows Credential Vault (Windows Vista i nowszy). W tym celu używam biblioteki kluczy Pythona, ale równie dobrze możesz użyć czegoś takiego jak CredMan (Powershell) do zarządzania nimi. Korzystanie z usługi Windows Credential Vault oznacza, że ​​hasło nigdy nie musi być wpisywane w wierszu polecenia, więc jest mało prawdopodobne, aby wyciekło (na przykład poprzez historię wiersza poleceń).

Po drugie, używam narzędzia takiego jak klip, aby skopiować hasło do schowka.

Może się okazać, że chcesz połączyć te dwa elementy ze swoim własnym skryptem PowerShell, który pobiera tekst z menedżera poświadczeń i umieszcza go w schowku. Skrypt może być tak prosty, jak:

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

Następnie wystarczy dodać hasło do „Some System” w Windows Credential Manager, a ten skrypt magicznie umieści hasło w schowku na polecenie.

Jason R. Coombs
źródło
1
Dziękuję Ci; Chciałem zasugerować użycie programu Powershell, aby uzyskać dostęp do schowka. Zauważ, że możesz używać powershell -c <command>z CMD, więc jeśli faktycznie musi to być plik wsadowy, może użyć czegoś takiego jak powershell -c [Windows.Forms.Clipboard]::SetText(%PASSWORD%)po użyciu CMD do załadowania hasła do (tymczasowej, proszę!)% PASSWORD% zmiennej.
CBHacking
0

Najłatwiejszym sposobem na to jest:

  1. otwórz Notatnik
  2. skopiuj [ CTRL+ C] ten wiersz:
  3. ECHO | SET /P=mypassword | CLIP
  4. wklej [ CTRL+ V] tę linię do Notatnika
  5. i zmień „mojehasło” na swój tekst, a następnie zapisz je jako „nazwa pliku” .bat

Możesz edytować ten skopiowany tekst, kiedy tylko chcesz edytować ten plik za pomocą Notatnika.

użytkownik461284
źródło
-1 powinieneś streścić tę odpowiedź w jednym zdaniu u góry, przed krokami dziecka (jeśli w ogóle uwzględnisz kroki dziecka), a to podsumowanie miałoby uratować osoby techniczne przed koniecznością przeczytania wszystkich kroków dziecka. Pytający wie, jak napisać skrypt, aby wiedział, że ctrl-c kopiuje do schowka i wkleja ctrl-v. podobnie jak większość super użytkowników, dla kogo przeznaczona jest ta strona. Oczywiście, twoja odpowiedź jest już zaspokojona przez innych. Właśnie dodałeś kroki dziecka, których pytający nie potrzebuje.
barlop
1
I powinieneś oświadczyć, że nie oferujesz tutaj nowego rozwiązania, tylko omawiając jedno już powiedziane.
barlop
Po co powtarzać komuś odpowiedź?
Asfand Qazi