标题: 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 ]