中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-18 19:44
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 为何这一P处理不能在NT4.0上运行 查看 1,852 回复 20
楼 主 为何这一P处理不能在NT4.0上运行 发表于 2007-06-27 11:06 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
各位高手:
请帮忙看看为何这一P处理不能在NT4.0上运行,但可在WIN2K 和XP 上运行,请帮忙修改下, 谢

for /f "delims=" %%i in ('dir /b *.txt') do (
findstr /b /r "\<TP\>" "%%i"
if !errorlevel!==0 copy "%%i" C:\123\"%%i"&del /q /f "%%i"
)

[ Last edited by joshualaw on 2007-6-27 at 11:07 AM ]
2 发表于 2007-06-27 11:13 ·  中国 河北 石家庄 北京神州长城通信技术发展中心中国长城互联网
初级用户
★★
积分 152
发帖 75
注册 2007-02-06 22:09
19年会员
UID 78805
性别 男
状态 离线
没有nt4.0系统
一般来说都会给错误提示的吧?
3 发表于 2007-06-27 11:43 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
没有nt4.0系统
是否需要把"delims="改为"delims= "
4 发表于 2007-06-27 11:56 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Originally posted by HAT at 2007-6-27 11:43 AM:
没有nt4.0系统
是否需要把"delims="改为"delims= "

请看看我在C:\VER 的两个图片:

[ Last edited by joshualaw on 2007-6-27 at 11:59 AM ]
附件
nt.jpg
xp.jpg
5 发表于 2007-06-27 12:27 ·  中国 河北 石家庄 北京神州长城通信技术发展中心中国长城互联网
初级用户
★★
积分 152
发帖 75
注册 2007-02-06 22:09
19年会员
UID 78805
性别 男
状态 离线
Originally posted by joshualaw at 2007-6-27 11:56 AM:

请看看我在C:\VER 的两个图片:

[ Last edited by joshualaw on 2007-6-27 at 11:59 AM ]

???
6 发表于 2007-06-27 13:14 ·  中国 广东 广州 番禺区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Originally posted by zasxcdfv at 2007-6-27 12:27 PM:

???


这两个图片是告知大家两个不同的操作系统和版本

1》在Windows NT 4.0 上不能运行,也没有错误信息返回,(只能从结果知道,这一功能不能实现)

2》Windows XP 可实现这一功能
7 发表于 2007-06-27 13:15 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
NT4.0很老了,NT4.0的for不知道有没有这些参数

贴上for /?的参数看看
8 发表于 2007-06-27 13:40 ·  中国 广东 深圳 电信
初级用户
积分 52
发帖 24
注册 2007-05-09 14:26
19年会员
UID 87949
性别 男
状态 离线
在批处理的结尾加 PAUSE 看清楚不能运行还是没有此命令。
9 发表于 2007-06-27 14:04 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
2楼和3楼的意思是:
他们没有安装nt4.0系统,而不是说nt4.0系统不存在^_^

如 zh159 兄所说,贴上for /?的帮助信息看看
10 发表于 2007-06-27 14:29 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
印象中nt4缺省不开启命令扩展

使用SETLOCAL ENABLEEXTENSIONS开启
11 发表于 2007-06-27 15:17 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Originally posted by qzwqzw at 2007-6-27 02:29 PM:
印象中nt4缺省不开启命令扩展

使用SETLOCAL ENABLEEXTENSIONS开启


在P处理开头,我使用下列命令,请看看是否对错.
@echo off&setlocal enabledelayedexpansion

也付上NT4.0 help file for your ref.
附件
NT for help.txt (6.32 KiB, 下载次数: 14)
12 发表于 2007-06-27 16:46 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
没NT4.0测试,但首先要修正一个地方:
if !errorlevel!==0 copy "%%i" C:\123\"%%i"&del /q /f "%%i"
这里一个“&”会造成“copy”、“del”两个命令同时运行,有可能会出错,改为:
if !errorlevel!==0 copy "%%i" C:\123\"%%i"&&del /q /f "%%i"
这样会等待“copy”命令完成后再执行“del”命令
13 发表于 2007-06-28 10:57 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
我多加了一个&,但还是不行啊. 所有的文件全部copy 到了C:\456\下面,请帮忙看看啊

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b *.txt') do (
findstr /b /r "\<TP\>" "%%i"
if !errorlevel!==0 copy "%%i" C:\123\"%%i"&&del /q /f "%%i"
)
copy *.txt C:\456\*.txt
del /q /f *.txt
14 发表于 2007-06-28 11:45 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion

改成

@echo off&setlocal enabledelayedexpansion ENABLEEXTENSIONS
15 发表于 2007-06-28 15:16 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Originally posted by qzwqzw at 2007-6-28 11:45 AM:
@echo off&setlocal enabledelayedexpansion

改成

@echo off&setlocal enabledelayedexpansion ENABLEEXTENSIONS


还是不行哦,现象还是一样,好象下列语句起不了作用啊.

for /f "delims=" %%i in ('dir /b *.txt') do (
findstr /b /r "\<TP\>" "%%i"
if !errorlevel!==0 copy "%%i" C:\123\"%%i"&&del /q /f "%%i"
)
论坛跳转: