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

问题描述 投票:0回答:5

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

但是我想清除剪贴板并使用这个:

echo>nul|clip

还有其他方法清除Windows剪贴板吗?

windows powershell batch-file cmd clipboard
5个回答
10
投票

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

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

7
投票

好吧,最合乎逻辑的方法(至少在我看来),那就是将 redirect (

<
) Nothing (
nul
) 到 STDIN(句柄
0
)到
clip
命令,例如
< nul clip
,由于该命令的糟糕设计而不起作用,因为似乎输入重定向(
<
)只能通过文件来完成。

所以需要使用管道(

|
),它仍然允许多种方式:

echo/> nul | clip

break | clip

(rem/) | clip

type nul | clip

goto | clip

call | clip

exit | clip

上述所有方法都使用管道左侧的命令,该命令不会向 STDOUT(句柄

1
)输出任何内容。


5
投票

如果您想使用 Powershell 来执行此操作:

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

0
投票

批量

更多批量方式:

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

VB脚本

VBscript 中的一个方法:

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

0
投票

在批处理文件中尝试:

Powershell.exe -ExecutionPolicy Bypass -Command "Set-Clipboard $null; Restart-Service cbdhsvc_*"

右键单击批处理文件并以管理员身份运行。

© www.soinside.com 2019 - 2024. All rights reserved.