找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 6580|回复: 2

[其他] 【已解决】bat能够判断剪切板内容是字符还是文件(夹)吗?谢谢

[复制链接]
发表于 2025-3-31 13:31:28 | 显示全部楼层 |阅读模式
本帖最后由 yyz219 于 2025-3-31 19:39 编辑

已解决:
<!-- :
@echo off
::数据类型是文本,则返回值=1,否则返回值=0
(for /f %%v in ('mshta "%~f0" ') do echo,%%v) &pause&exit/b
-->
<script> u=clipboardData.getData('text'), v=(u)? 1: 0;
new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(v); close(); </script>
=========================================
百度搜索剪切板内容:
  1. <!-- :
  2. @echo off
  3. ::======================隐藏批处理窗口===========================================================
  4. if "%1"=="hide" goto CmdBegin
  5. start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
  6. :CmdBegin
  7. ::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆下面检测剪切板上是不是文本▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
  8. (for /f %%v in ('mshta "%~f0" ') do set 返回值=%%v) & ::(返回值:1--是文本, 0--文件【夹】)
  9. echo. %返回值% >%Temp%\#.txt
  10. ::==============================================================================================
  11. ::【检测 %Temp%\#.txt “有无”:"1"(有跳到:S,无跳到:T】
  12. type %Temp%\#.txt|findstr "1" >nul 2>&1
  13. if %errorlevel% equ 0 (goto :S) else goto :T
  14. ::==============================================================================================
  15. -->
  16. <script> u=clipboardData.getData('text'), v=(u)? 1: 0;
  17. new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(v); close(); </script>
  18. ::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆下面百度搜索剪切板的内容▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
  19. :S
  20. for /f "delims=" %%a in ('mshta "JavaScript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('text'));close()"') do set "剪切板内容=%%a"
  21. start "" d:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\chrome.exe "www.baidu.com/s?ie=UTF-8&wd=%剪切板内容%"
  22. :T
  23. exit
复制代码
==================================
原来的问题:
bat能够判断剪切板内容是字符还是文件(夹)吗?谢谢
发表于 2025-3-31 15:06:50 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-3-31 15:07 编辑

回复 1# yyz219

鉴于 winPE 系统对脚本类型支持的有限性,给一个 mshta 版本简化一下解答结果,以下代码存为 test.bat 运行,若当前剪贴板数据类型是文本,则返回值=1,否则返回值=0

  1. <!-- :
  2. @echo off &(for /f %%v in ('mshta "%~f0" ') do echo,%%v) &pause&exit/b
  3. -->
  4. <script> u=clipboardData.getData('text'), v=(u)? 1: 0;
  5. new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(v); close(); </script>
复制代码

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 乐于助人

查看全部评分

 楼主| 发表于 2025-3-31 15:09:42 | 显示全部楼层
回复 2# aloha20200628


    谢谢 我试一试先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:22 , Processed in 0.020488 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表