[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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能够判断剪切板内容是字符还是文件(夹)吗?谢谢
我是小白,希望老师多多帮助

本帖最后由 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

评分人数

TOP

回复 2# aloha20200628


    谢谢 我试一试先
我是小白,希望老师多多帮助

TOP

返回列表