Board logo

标题: [问题求助] VBS怎样自动把剪切板的内容复制到指定文件夹? [打印本页]

作者: swanseabrian    时间: 2022-3-17 19:34     标题: VBS怎样自动把剪切板的内容复制到指定文件夹?

一个自动备份剪贴板的vbs程序
就是ctrl+c复制的文件

然后备份到我指定的文件路径下,
文字的话就统一存到一个txt里面换行就行

图片,pdf文件类的,就复制到指定文件夹里就行
就是自动监听复制板和剪贴板

请问这个要怎么弄
作者: 湘喑    时间: 2022-3-18 15:46

你这个的话,推荐用quicker吧,用它的剪贴板模块处理这些还是比较方便的
作者: for_flr    时间: 2022-3-18 16:45

本帖最后由 for_flr 于 2022-3-18 16:46 编辑

批处理调用powershell可以完成。
  1. #@&cls&powershell "iex(gc '%~0'|out-string)"&pause&exit /b"
  2. if ([threading.thread]::CurrentThread.GetApartmentState() -ne "STA"){
  3.   powershell -sta
  4. }
  5. Add-Type -AssemblyName System.Windows.Forms
  6. #加载System.Windows.Forms
  7. $folder=get-date -f D
  8. if(!(test-path $folder)){md $folder}
  9. $folder=gi $folder
  10. $folder
  11. #根据日期建立文件夹$folder
  12. #也可以直接定义$folder="d:\aaa\bbb\test"
  13. $h=1
  14. $ms=$h*3600000
  15. $rate=800
  16. $loop=$ms/$rate
  17. #定义监控时间及频率,这里定义的1小时,每800毫秒检查一次剪贴板。
  18. function monitor{
  19.   $clipdata = [System.Windows.Forms.Clipboard]::GetDataObject()
  20.   $filetime=get-date -f MMddHHmmss
  21.   if ($clipdata.ContainsImage()) {
  22.     $clipdata.getimage().save("$folder\$filetime.jpg")
  23.     write-host "存储图片到文件$filetime+.jpg" -fore green
  24.   }
  25.   if($clipdata.containstext()){
  26.     $clipdata.gettext()+"`r`n"|ac $folder\text.txt
  27.     write-host "存储文字到文件text.txt" -fore green
  28.   }
  29.   if($clipdata.containsfiledroplist()){
  30.     copy $clipdata.getfiledroplist() $folder
  31.     write-host "复制文件到文件夹$folder" -fore green
  32.   }
  33.   [System.Windows.Forms.Clipboard]::clear()
  34.   write-host "监控剪贴板..."
  35.   Start-Sleep -Milliseconds $rate
  36. }
  37. for($i=1;$i -lt $loop;$i++){monitor}
  38. #根据前面定义的时长,循环执行
复制代码

作者: swanseabrian    时间: 2022-3-18 22:57

回复 2# 湘喑


    好的,谢谢
作者: swanseabrian    时间: 2022-3-19 13:03

回复 3# for_flr


    请问这个可以后台运行吗,就是不显示窗口出来?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2