中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-18 19:47
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 为何这一P处理不能在NT4.0上运行 查看 1,854 回复 20
16 发表于 2007-06-28 17:12 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
在代码中加一些的调试语句
就可以确定问题的出处了

比如,在for内部插入一行
echo %%i & pause

在 findstr 后插入
echo !errorlevel! & pause

这些是基本的调试技巧

---------------------------------------

印象中!errorlevel!的用法是有问题的
不过还是先看看你的调试结果再说

findstr /b /r "\<TP\>" "%%i" && copy "%%i" C:\123\"%%i"&&del /q /f "%%i"
17 发表于 2007-06-29 16:03 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Originally posted by qzwqzw at 2007-6-28 05:12 PM:
在代码中加一些的调试语句
就可以确定问题的出处了

比如,在for内部插入一行
echo %%i & pause

在 findstr 后插入echo !errorlevel! & pause

这些是 ...


在NT 4.0 上,我用了下列环境变量,但说环境变量无效,和没有errorlevel代吗返回,如下图.

@echo off&setlocal enabledelayedexpansion ENABLEEXTENSIONS

[ Last edited by joshualaw on 2007-6-29 at 04:05 PM ]
附件
errorlevel.jpg
18 发表于 2007-06-29 16:10 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
把@echo off注释掉。

然后把P拖到cmd中运行。就可以发现是哪里出错了。
19 发表于 2007-06-29 16:23 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
//在NT 4.0 上,我用了下列环境变量,但说环境变量无效,和没有errorlevel代吗返回

NT 4.0好像没有errorlevel吧,记得willsort斑竹似乎说过
20 发表于 2007-06-29 18:51 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
errorlevel变量属于命令扩展的内容
NT4应该是支持的

从你的错误来看
可能setlocal的用法有问题

将它拆成两句
setlocal ENABLEDELAYEDEXPANSION
setlocal ENABLEEXTENSIONS

如果还不行,就help setlocal看一下setlocal的参数
21 发表于 2007-07-04 00:16 ·  中国 广东 广州 黄埔区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
谢谢各位,问题已解决啦
论坛跳转: