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

[文本处理] 【已处理】运行批处理能得到想到的结果,但CMD窗口会出现提示

本帖最后由 dragon631 于 2015-6-5 14:12 编辑

有些批处理,在运行之后,能得到想要的结果,但是,按“任意键”继续后,CMD窗口会出现几行提示,随后快速关闭。

比如,如下代码
  1. @if(0)==(0) echo off & dir /b /a-d /on /s *.jpg *.jpeg *.png 2>nul|cscript -NoLogo -E:JScript %0 >"※图片名.尺寸;名称※.txt" & pause  @end
  2. var fso, Img;  
  3. fso = new ActiveXObject("Scripting.FileSystemObject");
  4. Img = new ActiveXObject("WIA.ImageFile");
  5. while(!WScript.StdIn.AtEndOfStream){
  6.     var f = fso.GetFile(WScript.StdIn.ReadLine());
  7.     Img.LoadFile(f);
  8.     WSH.Echo(fso.GetBaseName(f) + '_' + Img.Width + 'x' + Img.Height + '.' + fso.GetExtensionName(f));
  9. }
复制代码
在运行后,能得到想要的结果,但是,按“任意键”继续后,CMD窗口会出现几行提示。
将其拖到CMD窗口,可得到CMD提示的内容:
G:\0000\批处理\name.bat(7, 5) WIA.ImageFile.1: 段已被放弃且无法锁定。


请按任意键继续. . .
'var' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'fso' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'Img' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'while' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'var' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'Img.LoadFile' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'WSH.Echo' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'}' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


出现这个的原因是什么?
只要能得到想要的结果,CMD窗口出现的提示可以无视吗?

本帖最后由 dragon631 于 2015-6-5 14:14 编辑

回复 4# terse

因为找到的代码多数没什么异常,但是有几个会在CMD窗口出现提示,又百度不出个什么结果来,但是,心里有疑问不解决就总会惦记着,所以,发贴问一下!
这样子说来,CMD窗口会出现提示的,看样子还是因为代码存在瑕疵,虽然能得出结果,但也是有改进的空间的!
谢谢terse的热心解答,也感谢楼上其它提供帮助的朋友!

TOP

本帖最后由 terse 于 2015-6-5 11:17 编辑

回复 1# dragon631

这里已经修正  http://bbs.bathome.net/viewthread.php?tid=35923&highlight=

出现这个的原因是 没有加上 EXIT 退出  其实一般情况下加不加 都会退了

TOP

  1. @if(0)==(0) echo off & dir /b /a-d /on /s *.jpg *.jpeg *.png 2>nul|cscript -NoLogo -E:JScript %0 >"※图片名.尺寸;名称※.txt" & exit  @end
  2. var fso, Img;  
  3. fso = new ActiveXObject("Scripting.FileSystemObject");
  4. Img = new ActiveXObject("WIA.ImageFile");
  5. while(!WScript.StdIn.AtEndOfStream){
  6.     var f = fso.GetFile(WScript.StdIn.ReadLine());
  7.     Img.LoadFile(f);
  8.     WSH.Echo(fso.GetBaseName(f) + '_' + Img.Width + 'x' + Img.Height + '.' + fso.GetExtensionName(f));
  9. }
复制代码

TOP

后面的代码。请无视

TOP

返回列表