我正在使用一个需要多次尝试才能登录的应用程序(因为服务器超载)。
此应用程序没有“记住我的密码”功能。
因此,我想脚本(最好是 .bat 脚本),首先将我的密码复制到剪贴板-这样我就不必在每次登录时重新输入密码-然后启动应用程序(简单的部分)
使用 MS-DOS 命令可以实现吗?我需要一个小的 exe 还是另一种脚本语言?
我显然正在寻找最快的解决方案。
提前感谢您的想法
答案1
http://www.petri.co.il/software/clip.zip
注意 - Petri 的链接目前已关闭。他从 Windows Server 2003 获得该链接,但我也在 Windows 7 上看到了 clip.exe。Windows 7 之后的 Windows 版本中也有该链接。
C:\>echo abc| clip <-- copies abc to the clipboard.
编辑
最重要的是 clip 命令,但正如 Asu 指出的那样,像这样的行echo abc
也会发送 \r\n(即换行符)。如果你想避免这种情况,那么这是一个非常标准的问题,只需将echo texttoecho
, 替换为echo|set/p=texttoecho
SoC:\>echo|set/p=texttoecho|clip
进一步补充
当然,您可以通过右键单击进行粘贴,但对于命令行粘贴也是如此。
unxutils(一个自 1990 年代以来就不再维护的古老东西)有 gclip 和 pclip(它们似乎不在 gnuwin32 中),你可以通过命令行复制和粘贴它们。
注意 - gnuwin32 可能也没有那么更新。Gnuwin32 上次更新是在 2010 年!Cygwin 仍然在更新,但无论如何。
C:\unxutilsblah\usr\local\wbin>echo a|gclip <-- copy a to clipboard
C:\unxutilsblah\usr\local\wbin>pclip
a
C:\unxutilsblah\usr\local\wbin>
注意-您可以将整个 wbin 复制到例如c:\unxutils
,并且 EXE 没有依赖项/dll。
当然,您也可以执行 pclip>aa 来粘贴到文件。或者 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>
答案2
barlop 的选项并不完全正确,因为echo
它会在您的密码中添加换行符,从而破坏它。
您需要使用以下内容:
echo|set /p=MyPassWord|clip
这样,字符串就会原样复制到剪贴板。
答案3
我自己也遇到过类似的情况,下面是我解决问题的方法。
首先,我将密码存储在 Windows Credential Vault(Windows Vista 及更高版本)中。为此,我使用 Python 的密钥环库,但您也可以使用类似CredMan(Powershell)来管理它们。使用 Windows Credential Vault 意味着无需在命令行中输入密码,因此不太可能泄露(例如通过命令行历史记录)。
其次,我使用像 clip 这样的工具将密码复制到剪贴板。
您可能会发现需要将两者与您自己的 PowerShell 脚本结合起来,该脚本从凭据管理器中获取文本并将其放在剪贴板上。该脚本可能很简单:
$cred = Read-Creds 'Some System'
[Windows.Forms.Clipboard]::SetText($cred.CredentialBlob)
然后,您所要做的就是在 Windows 凭据管理器中将密码添加到“某个系统”,该脚本就会根据命令神奇地将密码放在剪贴板上。
答案4
您可以按照以下方式使用 powershell:
powershell -c "Set-Clipboard -Value 'MyPassword'"
不确定引用会如何影响命令行(即,如果您的密码中包含单引号或双引号字符)。