phi*_*ady 7 windows clipboard powershell command-line batch-file
我见过类似的工具CLIP
,但它适用于剪贴板,而不是另一个方向。
我看到过对“粘贴”的引用,但这似乎不是 Windows 的一部分。我需要找到适用于标准 Windows 7、8 和 10 环境的解决方案。
Clip
是分布式的。有人有可以从剪贴板到文件的工具吗?
似乎可以使用 PowerShell 命令来完成。
我刚刚编写的这个 C# 程序执行了我使用 PowerShell 执行的操作:
class Clip2File
{
[STAThread()]
static void Main(string[] args)
{
var fileName = @"c:\demo.png";
if (args.Length != 0){
fileName = args[0];
}
if (!Clipboard.ContainsImage()) return;
Image img = Clipboard.GetImage();
img?.Save(fileName, ImageFormat.Png);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 PowerShell cmdlet Get-Clipboard
(别名为gcb
)。
将剪贴板文本写入文件:
gcb > myfile.txt
Run Code Online (Sandbox Code Playgroud)
它确实有一个从剪贴板获取图像的选项,-Format Image
但这似乎只提供元数据,因此它可能对将图像写入文件没有帮助。
Windows cmd
(如果剪贴板包含文本数据):
Powershell -command Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.Clipboard]::GetText()
Run Code Online (Sandbox Code Playgroud)
示例显示上述命令将两个字节添加到输出(Cr和Lf):
Powershell -command Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.Clipboard]::GetText()
Run Code Online (Sandbox Code Playgroud)
阅读有关 .NET FrameworkClipboard
类方法的更多信息。
编辑答案扩展主题(保存图像,参见ImageFormat
Class):
Add-Type -AssemblyName System.Windows.Forms ### not necessary in PowerShell_ISE
if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {
$image = [System.Windows.Forms.Clipboard]::GetImage()
$filename='d:\test\test.png' ### edit to fit in your circumstances
[System.Drawing.Bitmap]$image.Save($filename,
[System.Drawing.Imaging.ImageFormat]::Png)
Write-Output "clipboard content saved as $filename"
} else {
Write-Output "clipboard does not contains image data"
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9193 次 |
最近记录: |