Board logo

标题: IF var ∈(all.txt) & NOT var ∈(except.txt) copy var E:(结案) [打印本页]

作者: bapala     时间: 2006-10-11 11:12    标题: IF var ∈(all.txt) & NOT var ∈(except.txt) copy var E:(结案)

如何实现:
(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 ]
作者: pengfei     时间: 2006-10-11 11:38
代码如下, 请楼主测试:
@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
作者: bapala     时间: 2006-10-11 11:58
谢谢pengfei,学了一手,
setlocal enabledelayedexpansion
厉害,我今天有所得,呵呵,谢谢了。
睡觉了,ZZZZZzzzz...
同志们,休息了
作者: namejm     时间: 2006-10-11 12:05
  如果下面的代码能正确显示你想要的内容,请把echo语句改成xcopy语句:
@echo off
for /f "delims=" %%i in ('findstr /v /g:except.txt all.txt') do echo "%%i"
pause

作者: bapala     时间: 2006-10-11 12:16
all.txt的最后一项会存在判断错误的危险,谢谢指导。

  Quote:
Originally posted by namejm at 2006-10-11 12:05:
  如果下面的代码能正确显示你想要的内容,请把echo语句改成xcopy语句:
[code]
@echo off
for /f "delims=" %%i in ('findstr /v /g:except.txt all.txt') do ech ...


作者: namejm     时间: 2006-10-11 12:42


  Quote:
Originally posted by bapala at 2006-10-11 12:16:
all.txt的最后一项会存在判断错误的危险,谢谢指导。

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

[ Last edited by namejm on 2006-10-11 at 12:56 ]