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

[文件管理] 批处理无3方显示“打开文件对话框”

特点:NO临时文件,只一个批处理文件,HTA+BAT集于一身
原理:调用mshta打开自己,并把结果通过注册项反馈给批处理,批处理检测后会删除注册项

不多说,代码上:
  1. @echo off
  2. goto a
  3. <html>
  4. <body>
  5. <input type='file' id='f' />
  6. <script type='text/javascript'>
  7. var f = document.getElementById('f');
  8. f.click();
  9. var shell = new ActiveXObject('WScript.Shell');
  10. shell.RegWrite('HKEY_CURRENT_USER\\Volatile Environment\\msg', f.value);
  11. window.close();
  12. </script>
  13. </body>
  14. </html>
  15. :a
  16. set -reg=reg delete "HKCU\Volatile Environment" /v "msg" /f
  17. echo,任意键选择文件
  18. echo,
  19. pause>nul
  20. %-reg%>nul 2>nul
  21. mshta "%~dpnx0"
  22. for /f "tokens=2*" %%i in ('reg query "HKCU\Volatile Environment" /v "msg"') do (
  23. set fname=%%j
  24. )
  25. ::不能if x==x (x) else (y),否则选择有括号的文件时就会KO
  26. if "%fname%"=="" echo,你没有选择文件
  27. if not "%fname%"=="" echo,你选择了%fname%。
  28. %-reg%>nul 2>nul
  29. echo,
  30. pause>nul
复制代码
4

评分人数

为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

回复 19# cjiabing
可能没权限,只是猜测
https://pc.woozooo.com/mydisk.php

TOP

回复 8# defanive
64位不行,那个部件不能创建对象
https://pc.woozooo.com/mydisk.php

TOP

一语惊醒梦中人
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

explorer.exe的命令行参数不是有相似的效果么?

TOP

回复 18# raymai97


    我也不知道怎么会这样,但就是提示找不到注册表。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 13# cjiabing

为何我这里没有这个问题的?而且我记得我已经加了“>nul 2>nul”,难道这样也隐蔽不到错误信息?
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

回复 16# 920168

非常感谢,不过我想问的重点是:如何把document.execCommand('Open')获得的路径输出到其它文档,比如楼主的注册表。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 15# cjiabing
  1. <html>
  2. <head>
  3. <title>创建文本文件</title>
  4. </head>
  5. <body>
  6. <hr>
  7. <script language="JavaScript">
  8. var fso,f1,pa;
  9. var pa= "d:\\Fastcopy\\st.txt"
  10. var ForReading=1;
  11. fso=new ActiveXObject("Scripting.FileSystemObject");
  12. f1=fso.CreateTextFile(pa,true);
  13. f1.WriteLine("Hello World!");
  14. f1.WriteLine("Hello World1!");
  15. f1.WriteBlankLines(1);
  16. f1.Close();
  17. document.write("创建文本文件: " + pa + "<br>");
  18. </script>
  19. </body>
  20. </html>
复制代码
http://www.diecasting86.com

TOP

  1. <html>
  2. <body>
  3. <script language="javascript">
  4. {
  5. document.execCommand('Open');
  6. Editor.focus();
  7. }
  8. </script>
  9. </body>
复制代码

没学过JS,搞了蛮久,还是不得。不懂如何document.write输出到文本。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

有创意,不过有个问题必须解决,就是如何把结果传回批处理,而不显示那些多余的东西?
任意键选择文件


错误: 系统找不到指定的注册表项或值
你没有选择文件
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

有创意,不过有个问题必须解决,就是如何把结果传回批处理,而不显示那些多余的东西?
任意键选择文件


错误: 系统找不到指定的注册表项或值
你没有选择文件
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

支持大大,能不能写一个保存的文件对话框呀。
悲杯,没有可用的签名。。

TOP

回复 9# raymai97
Win7…回去改一下换成html控件执行好了
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

回复 7# canyuexiaolang


    这个会调用到ie的东西,所以会比较慢~
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

返回列表