标题: [文件操作] 批处理怎样根据复制文件清单在指定盘符下复制文件到指定文件夹? [打印本页]
作者: zhoubin 时间: 2011-10-2 00:17 标题: 批处理怎样根据复制文件清单在指定盘符下复制文件到指定文件夹?
本帖最后由 zhoubin 于 2011-10-2 21:11 编辑
问题描述:
根据复制清单1.txt在X:盘根目录及各级子目录(含隐藏文件及隐藏文件夹)下查找复制清单1中的文件复制到C:\IE8-CHS文件夹下
根据复制清单2.txt在X:盘根目录及各级子目录(含隐藏文件及隐藏文件夹)下查找复制清单2中的文件复制到C:\IE8-CHS\support文件夹下
根据复制清单3.txt在X:盘根目录及各级子目录(含隐藏文件及隐藏文件夹)下查找复制清单3中的文件复制到C:\IE8-CHS\update文件夹下
谢谢大家,祝各位老大国庆节快乐!!!
作者: dnfreeuser 时间: 2011-10-2 10:26
如果不考虑以下可能很容易,虽然我不会: 清单中文件是否包含读写锁定及畸形路径,无权限读的文件,是否需要保持文件名不变(其实这一点就很难达到,比如一个文件叫1.一般根本没法创建的)
作者: Hello123World 时间: 2011-10-2 15:27
复制清单中的内容是什么?(复制上来看看)
文件名,还是文件完全路径?
作者: zhoubin 时间: 2011-10-2 16:12
手机上网, 资料不在身边
复制文件列表是TxT文档,里面没有路径
谢谢了
作者: zhoubin 时间: 2011-10-2 20:55
本帖最后由 zhoubin 于 2011-10-3 10:55 编辑
回复 3# Hello123World
复制清单1.txt复制代码
复制清单2.txt- xmllite.dll
- normnfkd.nls
- normnfkc.nls
- normnfd.nls
- normnfc.nls
- normidna.nls
- normaliz.dll
- nlsdl.dll
- idndl.dll
复制代码
复制清单3.txt- updspapi.dll
- update.ver
- update.inf
- update.exe.manifest
- update.exe
- sqmapi.dll
- iesetup.exe
- iecustom.dll
- ie8.cat
- eula.rtf
复制代码
实际上是根据这三个复制清单.txt遍历X:盘(w i n 7 p e 系统盘 ),查找到相应的文件,并把找到的文件复制到指定的三个文件夹内,这里面有可能还会找到同名文件呢,不过,这不要紧,关键是这个批处理我不会写。
一楼的求助帖,之所以写成是在D:盘中查找,是为了便于各位理解,因为一般的电脑是没有X:盘的。。。。
作者: zhoubin 时间: 2011-10-5 11:45
唉,看样子,这个真的很难。。。。
作者: yuanyannian 时间: 2012-2-12 18:24
"看样子,这个真的很难。。。。"
高手们有的是,不知不愿或是不屑???
作者: lvsehuaxue 时间: 2012-2-12 21:31
本帖最后由 lvsehuaxue 于 2012-2-12 21:50 编辑
- @echo off
- for /f "skip=1" %%i in ('^(wmic logicaldisk where drivetype^='3' get name^)') do (
- echo %%i|findstr ":">nul&&(
- for %%j in (1.txt 2.txt 3.txt) do (
- for /f "delims=" %%a in (%%j) do (
- for /f "delims=" %%b in ('dir /a /b /s "%%i\%%a"') do (
- for /f "tokens=1-3" %%i in ('attrib "%%b"') do (
- echo %%i|findstr /i "\<s\> \<h\> \<sh\>">nul&&(attrib -s -h "%%b"&set abc==)
- echo %%j|findstr /i "\<s\> \<h\> \<sh\>">nul&&(attrib -s -h "%%b"&set abc==)
- echo %%k|findstr /i "\<s\> \<h\> \<sh\>">nul&&(attrib -s -h "%%b"&set abc==)
- )
- if %%j equ 1.txt copy "%%b" C:\IE8-CHS文\
- if %%j equ 2.txt copy "%%b" C:\IE8-CHS\support\
- if %%j equ 3.txt copy "%%b" C:\IE8-CHS\update\
- if defined abc (attrib +s +h "%%b"&set abc=)
- )
- )
- )
- )
- )
- pause
复制代码
作者: xt0883 时间: 2012-8-21 10:08
回复 8# lvsehuaxue
for /f "skip=1" %%i in ('^(wmic logicaldisk where drivetype^='3' get name^)')改为for %%i in (c d e f g h i j k )用不了,还要修改哪里,请指教下,谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |