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

[文件操作] 批处理如何实现弹出输入对话框并根据输入的文件名或完整路径查找并打开文件

本帖最后由 pcl_test 于 2016-8-18 14:37 编辑

打开批处理弹出一个窗口,输入文件名点击确定打开相应文件点取消则退出
补充:如果文件不存在就弹窗提醒,输入的文件名如果只包含文件名则在同级目录查找,如果是绝对路径就按绝对路径来。求助这个功能用bat怎么写呢?
1

评分人数

    • pcl_test: 发帖前先使用论坛搜索PB -2
学习计算机技术

BAT查找速度比较慢,推荐使用 Everything 这个工具。

TOP

回复 2# GNU
不是怎么查找文件啊,主要是弹窗根据输入的文件路径来打开文件,如果输入的文件存在在点击确定之后打开他,不存在的话弹出窗口提示一下文件不存在,貌似需要vbs代码。
学习计算机技术

TOP

回复 2# GNU



我主要是需要一个弹出框来打开一个文件,界面需要输入框,确定按钮,取消按钮,如图,临时写的一个界面
学习计算机技术

TOP

回复 4# gd6570

下面是弹出一个文件选择框,并返回选择路径的方法:
  1. @echo off
  2. echo ^> 请选择一个文件。
  3. call :GetFile "F"
  4. if not defined F (
  5. echo ^> 您没有选择文件。
  6. ) else (
  7. echo ^> 您选择的文件是:
  8. echo   %F%
  9. )
  10. pause
  11. goto :eof
  12. :GetFile
  13. (echo;^<html^>^<head^>^<title^>Browse^</title^>^</head^>^<body^>^
  14. ^<input type='file' id='f' name='f'/^>^<script type='text/javascript'^>^
  15. f.click^(^);var shell = new ActiveXObject^('WScript.Shell'^);^
  16. var fso = new ActiveXObject^('Scripting.Filesystemobject'^);^
  17. fso.GetStandardStream^(1^).Write^(f.value^);window.close^(^);^
  18. ^</script^>^</body^>^</html^>)>%tmp%\getFile.hta
  19. set "%~1="
  20. for /f "delims=" %%a in ('mshta %tmp%\getFile.hta') do set "%~1=%%~a"
  21. goto :eof
复制代码
1

评分人数

    • 986981535: 好玩0.0可以实现域内电脑选择文件做管理员运 ...技术 + 1
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 5# yu2n
可以转变下调用方式
  1. @echo off
  2. for /f "delims=" %%a in ('mshta "about:<input type=file id=f><script>f.click();(new ActiveXObject('Scripting.FileSystemObject')).GetStandardStream(1).Write(f.value);close();</script>"') do set "f=%%a"
  3. echo;选择的文件是%f%
  4. pause
复制代码
1

评分人数

    • yu2n: 感谢分享技术 + 1

TOP

  1. @echo off
  2. for /f %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(inputbox("""",,""输入文件路径或文件名""))"^)(close^)') do set "f=%%a"
  3. echo;%f%
  4. pause
复制代码

TOP

回复 5# yu2n


    不是弹文件选择框,是用VBS代码弹一个窗口,然后在输入框输入文件名点击确定就用start打开这个文件,没找到的话在用另外一个vbs提醒一下,点击取消就直接退出,这样的能实现么?
学习计算机技术

TOP

回复 7# pcl_test


    不是弹文件选择框,是用VBS代码弹一个窗口,然后在输入框输入文件名点击确定就用start打开这个文件,没找到的话在用另外一个vbs提醒一下,点击取消就直接退出,这样的能实现么?
学习计算机技术

TOP

回复 9# gd6570

7楼不是输入框?

TOP

回复 10# pcl_test


    我看漏了一楼,请问能在没有相应文件的时候弹一个提示说没有文件么?
学习计算机技术

TOP

回复 11# gd6570
弹出对话框,论坛一搜一堆
if not exist "%f%" msg * "不存在"

TOP

本帖最后由 pcl_test 于 2016-8-18 20:34 编辑
  1. @echo off
  2. rem 自定义输入框
  3. for /f "delims=" %%a in ('mshta "about:<hta:application border=none showintaskbar=no /><input type=text id=t style='color:#FF0000;' value=输入文件路径或文件名 />&nbsp;<input type=button id=b value=确定 onclick=ck() />&nbsp;&nbsp;&nbsp;&nbsp;<input type=button value=取消 onclick=window.close() /><script>window.resizeTo(300, 60);function ck(){(new ActiveXObject('Scripting.FileSystemObject')).GetStandardStream(1).Write(t.value);close();}</script>"') do set "f=%%a"
  4. echo;%f%
  5. pause
复制代码
1

评分人数

    • CrLf: 补漏技术 + 10

TOP

本帖最后由 gd6570 于 2016-8-18 20:47 编辑

回复 13# pcl_test

for /f %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(inputbox("""",,""输入文件路径或文件名""))"^)(close^)') do set "f=%%a"
if not exist "%f%" MsgBox "文件不存在!",48,"重要提示"

这样写输入之后直接退出了,没弹出来,哪里出问题了?
学习计算机技术

TOP

回复 14# gd6570

cmd不认识你自创的语法

TOP

返回列表