繁体   English   中英

如何使用批处理文件或 PowerShell 清除 Windows 剪贴板?

[英]How to clear Windows clipboard using a batch file or PowerShell?

我有一个批处理文件,我的程序会自动与剪贴板一起工作。

但我想清除剪贴板并使用它:

echo>nul|clip

有没有其他方法可以清除 Windows 剪贴板?

好吧,最合乎逻辑的方法(至少在我看来),即 重定向( < ) 无 ( nul ) 到STDIN (句柄0 )到clip命令,例如< nul clip ,由于糟糕的设计而不起作用该命令,因为似乎输入重定向( < )只能用文件来完成。

所以需要使用管道( | ),它仍然允许几种方式:

echo/> nul | clip

break | clip

(rem/) | clip

type nul | clip

goto | clip

call | clip

exit | clip

以上所有方法都使用管道左侧的命令,该命令不会向STDOUT (句柄1 )输出任何内容。

这是另一种方法。 这似乎至少清除了 CF_TEXT 和 CF_BITMAP。 需要测试以查看它是否清除了所有 CF_* 类型。

powershell -NoLogo -NoProfile -Command "Set-Clipboard -Value $null"

如果你想用 Powershell 做到这一点:

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Clipboard]::Clear()

批处理的更多方法:

<nul set /p="" | clip
dir >nul | clip 
cd %cd% | clip
pushd %cd% | clip
cd >nul | clip

脚本

VBscript中的一个方法:

Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate("about:blank")
IE.Document.ParentWindow.ClipboardData.SetData "text", ""
IE.Quit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM