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

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

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

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

评分人数

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

@echo off
echo 请输入文件路径,按enter键开始查找
set /p e=
start %e%
if errorlevel 9059 mshta vbscript:msgbox("找不到此文件%e%",4114,"错误提示")(window.close)

TOP

回复 7# pcl_test

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

在win7系统中不支持中文名称,请教一下有没有办法改一下支持中文名称,

TOP

弹出通用对话框

TOP

回复 15# pcl_test


    怎么改啊?
学习计算机技术

TOP

回复 14# gd6570

cmd不认识你自创的语法

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

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

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

TOP

回复 10# pcl_test


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

TOP

回复 9# gd6570

7楼不是输入框?

TOP

回复 7# pcl_test


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

TOP

回复 5# yu2n


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

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
可以转变下调用方式
  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

返回列表