Windows脚本将一些文本复制到剪贴板?


27

我使用的应用程序需要多次尝试登录(由于服务器超载)。

此应用程序没有“记住我的密码”功能。

因此,我想创建一个脚本(最好是.bat脚本),该脚本首先将我的密码复制到剪贴板中-这样我就不必在每次登录尝试时都重新输入密码-然后启动该应用程序(简单的部分)

使用MS-DOS命令是否可行?我需要一点exe或其他脚本语言吗?

我显然正在寻找最快的解决方案。

预先感谢您的想法


我认为您无法在.bat文件中解决此问题,请看一下autohotkey,它应该可以在几行中解决您的问题,如果您已经知道一种编程语言,这应该很容易。
Guillermo Siliceo Trueba

Answers:


33

http://www.petri.co.il/software/clip.zip
注意-Petri的链接当前关闭。他是从Windows Server 2003上获得的,但我在Windows 7上也看到了clip.exe。它也在Windows版本上发布Windows 7。

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

编辑
最主要的是该剪辑命令,但是正如Asu所指出的那样,像这样的行echo abc也会发送\ r \ n(这是新行)。如果您想避免这种情况,那么这是一个非常标准的问题,方法是将So 替换echo texttoechoecho|set/p=texttoechoSoC:\>echo|set/p=texttoecho|clip

进一步的添加
当然,您可以单击右键进行粘贴,但是对于命令行也可以粘贴。

unxutils(已有十年之久的古老东西)具有gclip和pclip(它们似乎不在gnuwin32中),您可以通过命令行进行复制和粘贴。

注意-gnuwin32可能也没有更新。

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复制到eg 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>

在相关说明中,在cmd窗口中,左键单击左上角,然后单击属性,然后在选项选项卡中,选中显示快速编辑模式的框。现在,您可以快速复制/粘贴。单击按住并用鼠标将鼠标拖到要复制的内容上,将其选中,然后按Enter键进行复制。右键单击以粘贴。
barlop 2011年

并粘贴到命令行,右键单击。要在批处理文件中获取它,您将需要用vbs,perl,c等其他语言编写一个微型脚本或可执行文件来执行此操作或编译其他人 stackoverflow.com/questions/1704455/…btw,.vbs 使用wshextra .dll set clip = createobject(“ WshExtra.Clipboard”)看起来Perl只需两行,不需要任何额外的文件。
barlop 2012年

以及petri网站上提及该网页的网页,尽管其他许多网页只是链接到该文件。 petri.co.il/quickly_copy_error_and_display_messages.htm
barlop 2012年

也该链接提到了雷蒙德陈博文也对这个SO链路上的答案有评论提及的雷蒙德陈后使用unxutils GCLIP和pclip评论stackoverflow.com/questions/1704455/...
barlop

2
不过我看到clip.exe适用于Windows 10下
比尔·罗德曼

26

barlop的选项并不完全正确,因为echo它将在密码中添加一个换行符以破坏它。

您需要使用的是:

echo|set /p=MyPassWord|clip

这样,字符串将原样复制到剪贴板。


1
这应该是一个公认的答案。用换行符和引号帮助我。
Piotr Sobczyk

应该刚刚编辑了现有的答案
endolith 2014年

@endolith我当时没有特权这样做。
阿苏2014年

并非如此:末尾添加了一个空格。
蒂埃里·达隆

@ThierryDalon结尾的“ | clip”删除了空格,因此您不应添加该空格。
阿苏

1

AutoIt v3可以自动执行Windows,这使得尝试几次登录尝试变得容易。

AutoIt v3是一种免费的,类似于BASIC的脚本语言,旨在自动执行Windows GUI和常规脚本。它结合了模拟按键,鼠标移动和窗口/控件操作的组合,从而以其他语言(例如VBScript和SendKeys)不可能或不可靠的方式自动执行任务。AutoIt也非常小巧,功能齐全,可以直接在所有版本的Windows上运行,而无需烦人的“运行时”!

AutoIt最初是为PC“推出”情况设计的,以可靠地自动化和配置数千台PC。随着时间的流逝,它已成为一种功能强大的语言,它支持复杂的表达式,用户功能,循环以及资深脚本编写者期望的其他所有功能。

他们有很好的示例,文档和扎实的社区,可以帮助您解决脚本问题。

虽然,最好询问他们是否可以解决服务器超载的问题,因为自动执行请求只会使问题变得更糟...


这个工具看起来非常有用,但是我会坚持使用Ctrl-V手动操作,因为我不必键入密码或手动Ctrl-C密码,所以不会花很多时间。
塞巴斯蒂安

1
@Sebastien:我不明白,您正在要求一个脚本来帮助您更轻松地填写密码,而只是接受一个仅复制/粘贴的解决方案?您知道吗,如果您在密码框中选择密码圈,就可以从那里复制/粘贴它们?请注意,您可以使用数字上方的箭头来投票回答答案,以奖励声誉。
Tamara Wijsman

1
第一个答案实际上完全满足了我在问题中描述的需求(非常基本)。现在,当我想更进一步采取自动化,我一定会看一看的AutoIt;)和关于“投票了”,我没有为它的名声却]
塞巴斯蒂安

“密码圈”是指星号吗?他们不是圈子!尝试在Word女士中用大字体键入它们;-)错了,嗯,我猜有些软件使用圆圈!
barlop 2011年

@barlop:不,不是星号。圆圈确实是错误的,我认为它们被称为“圆点”,请参见此图片。下次,我将输入“密码字符”,这应该可以确保我的安全,直到有人发明了“密码数字” ...
Tamara Wijsman

1

我自己也遇到过类似的情况,这就是我如何解决的方法。

首先,我将密码存储在Windows凭据保险柜(Windows Vista和更高版本)中。为此,我使用了Python的密钥环库,但是您也可以使用CredMan(Powershell)之类的东西来管理它们。使用Windows Credential Vault意味着不必在命令行上键入密码,因此不太可能泄漏(例如通过命令行历史记录)。

其次,我使用诸如剪辑之类的工具将密码复制到剪贴板。

您可能会发现您想将两者与自己的PowerShell脚本结合使用,该脚本从凭据管理器中获取文本并将其放在剪贴板上。该脚本可以很简单:

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

然后,您要做的就是将密码添加到Windows Credential Manager中的“某些系统”,该脚本将神奇地将密码放在命令剪贴板上。


1
谢谢; 我打算建议使用Powershell访问剪贴板。请注意,您可以powershell -c <command>在CMD中使用它,因此,如果实际上它必须是批处理文件,则可以使用powershell -c [Windows.Forms.Clipboard]::SetText(%PASSWORD%)CMD将密码加载到%PASSWORD%变量中后的类似用法。
CBHacking

0

简便的方法是:

  1. 打开记事本
  2. 复制[ CTRL+ C]这一行:
  3. ECHO | SET /P=mypassword | CLIP
  4. 将此行粘贴[ CTRL+ V]到记事本
  5. 并为您的文本更改“ mypassword”,然后将其另存为“ filename” .bat

而且,只要您想用记事本编辑此文件,就可以编辑此复制的文本。


-1,您应该在婴儿步骤之前(如果您完全包括婴儿步骤)在最上面的一句话中概括了此答案,该摘要将使技术人员不必阅读所有婴儿步骤。发问者知道如何编写脚本,因此他知道ctrl-c复制到剪贴板并且ctrl-v粘贴。就像大多数超级用户一样,这是该网站的目标用户。.当然,您的回答已经被其他人满意。您刚刚添加了发问者不需要的婴儿步骤。
barlop

1
而且您应该声明您在这里不提供新的解决方案,而只是在阐述已经说明的解决方案。
barlop

为什么要重复别人的回答?
阿斯凡德·卡兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.