中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 04:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » IF var ∈(all.txt) & NOT var ∈(except.txt) copy var E:(结案) 查看 952 回复 5
楼 主 IF var ∈(all.txt) & NOT var ∈(except.txt) copy var E:(结案) 发表于 2006-10-11 11:12 ·  中国 江苏 苏州 电信
初级用户
积分 28
发帖 11
注册 2006-07-11 21:39
20年会员
UID 58408
状态 离线
如何实现:
(if 目录 存在于 all.txt)并且(目录 不存在于 except.txt) 中 copy 目录及其所有文件到 E:\
看了好久,没有找到相关答案,请高手解惑,谢谢
D:\>type all.txt
ccnaiso
New Oriental Soft
RECYCLER
Solaris
Solaris 9学习指南
System Volume Information

D:\>type except.txt
System Volume Information
Red Hat Enterprise Linux 4
Solaris 10
D:\>

[ Last edited by namejm on 2006-10-11 at 12:42 ]
2 发表于 2006-10-11 11:38 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
代码如下, 请楼主测试:


@echo off
set term=2
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (all.txt) do (
if "!term!"=="1" echo file: !file!
set term=1
for /f "tokens=*" %%c in (except.txt) do (
set file=%%i
if "%%i"=="%%c" set term=2
)
)
if "!term!"=="1" echo file: !file!
pause


如果显示的内容符合要求请将echo file: !file!换成xcopy
3 发表于 2006-10-11 11:58 ·  中国 江苏 苏州 电信
初级用户
积分 28
发帖 11
注册 2006-07-11 21:39
20年会员
UID 58408
状态 离线
谢谢pengfei,学了一手,
setlocal enabledelayedexpansion
厉害,我今天有所得,呵呵,谢谢了。
睡觉了,ZZZZZzzzz...
同志们,休息了
4 发表于 2006-10-11 12:05 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  如果下面的代码能正确显示你想要的内容,请把echo语句改成xcopy语句:

@echo off
for /f "delims=" %%i in ('findstr /v /g:except.txt all.txt') do echo "%%i"
pause
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2006-10-11 12:16 ·  中国 江苏 苏州 电信
初级用户
积分 28
发帖 11
注册 2006-07-11 21:39
20年会员
UID 58408
状态 离线
all.txt的最后一项会存在判断错误的危险,谢谢指导。
Originally posted by namejm at 2006-10-11 12:05:
  如果下面的代码能正确显示你想要的内容,请把echo语句改成xcopy语句:

@echo off
for /f "delims=" %%i in ('findstr /v /g:except.txt all.txt') do ech ...
6 发表于 2006-10-11 12:42 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
Originally posted by bapala at 2006-10-11 12:16:
all.txt的最后一项会存在判断错误的危险,谢谢指导。

  可能并非最后一项的问题,而是因为findstr查找的只是行内的匹配字符串,而不是查找匹配内容的整行。

[ Last edited by namejm on 2006-10-11 at 12:56 ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
论坛跳转: