Board logo

标题: 把一个文件拷贝到很多的文件夹(规律) [打印本页]

作者: beyoungse     时间: 2007-1-4 00:52    标题: 把一个文件拷贝到很多的文件夹(规律)

把bak这个文件夹拷贝到如 a001 a002 ……a009……a010……a100文件夹中
作者: beyoungse     时间: 2007-1-4 00:52
求教各位大侠啦
作者: namejm     时间: 2007-1-4 00:57

@echo off
for /l %%i in (1,1,100) do call :copy_ %%i
goto :eof

:copy_
set num=00%1
set name=a%num:~-3%
copy bak %name%
goto :eof

作者: flamey     时间: 2007-1-4 04:08
楼上的批处理中copy bak %name%这行有点问题,如果我这个目录本来没有这些文件夹的时候就会出错!
作者: namejm     时间: 2007-1-4 04:16
  楼主并没有特别说明这些文件夹是否存在,按照一般的理解,默认是存在的;如果不存在,那只能怪楼主交代不清;对于模糊不清的问题,无论是谁,都不可能解决得尽善尽美。
作者: beyoungse     时间: 2007-1-4 23:56
不好意思,我是新人,在实际的应用上想省点事情,就来请教大侠,

我问题时没有考虑太多,不好意思
作者: beyoungse     时间: 2007-1-5 00:09
@echo off
for /l %%i in (1,1,100) do call :copy_ %%i
goto :eof

:copy_
set num=00%1
set name=a%num:~-3%
copy bak %name%
goto :eof



我试过了,可是目标都成了文件,而不是文件夹

我的目的是把BAK这个文件夹拷贝到已经存在的文件夹中(a001,a002 ……a100这些目录是已经存在的文件夹)
作者: namejm     时间: 2007-1-5 01:49
  呵呵,没仔细看题目,以为bak是文件,失误。复制文件夹应该把 copy 换成 xcopy,再加上适当的参数。
作者: beyoungse     时间: 2007-1-5 04:35    标题: 再问题 拷贝 Documents and Settings 文件夹

把 Documents and Settings   这个文件来 拷贝到A001,A002,A003……A110文件夹

[ Last edited by beyoungse on 2007-1-7 at 12:33 PM ]
作者: beyoungse     时间: 2007-1-7 12:35    标题: 我拷贝不了

把 Documents and Settings   这个文件来 拷贝到A001,A002,A003……A110文件夹
作者: dikex     时间: 2007-1-7 12:48
Documents and Settings\%username%\文件夹里面的NTUSER和NTUSER.DAT文件是注册表相关的文件,正常情况下是无法复制的
作者: beyoungse     时间: 2007-1-7 12:55
这个文件夹是我自己建立的,里面只存在我自己建立的几个文件


老大帮帮我
作者: beyoungse     时间: 2007-1-7 12:56
我的目的是把用户桌面放在一个文件服务器上的,用户的系统是只读的
作者: dikex     时间: 2007-1-7 13:02
复制时用""括住路径即可正常复制
作者: beyoungse     时间: 2007-1-7 13:10
你能不能帮我写一下呢,是在当前目录操作,不用写路径吧?


我用上面的批处理,
@echo off
for /l %%i in (1,1,100) do call :copy_ %%i
goto :eof

:copy_
set num=00%1
set name=a%num:~-3%
copy Documents and Settings   %name%
goto :eof
作者: beyoungse     时间: 2007-1-7 13:15
我把 copy 换成了 xcopy /i /s/e
作者: dikex     时间: 2007-1-7 13:17
xcopy /i /s /e "Documents and Settings"   "%name%"
作者: beyoungse     时间: 2007-1-7 13:21    标题: 每个循环出错

C:\Documents and Settings\MM\test>copy.bat

C:\Documents and Settings\MM\test>for /L %i in (1 1 10) do call :copy_ %i

C:\Documents and Settings\MM\test>call :copy_ 1

C:\Documents and Settings\MM\test>set num=001

C:\Documents and Settings\MM\test>set name=a001

C:\Documents and Settings\MM\test>xcopy /i /s/e C:\Documents and Settings\MM\test\D
ocuments and Settings\   a001
无效的参数数量


……
……
……
作者: dikex     时间: 2007-1-7 13:25
看清楚17楼,路径是被双引号包住的……
作者: beyoungse     时间: 2007-1-7 13:33    标题: 问题解决,谢谢

@echo off
for /l %%i in (1,1,100) do call :copy_ %%i
goto :eof

:copy_
set num=00%1
set name=a%num:~-3%
xcopy /I /e/s "Documents and Settings" %name%
goto :eof
作者: jmz573515     时间: 2007-3-14 08:02
为了学习,难免有错,谢谢指正!
@echo off
setlocal EnableDelayedExpansion
for /l %%a in (1,1,100) do (
set a=00%%a
@echo bak !a:~-3!
)
pause>nul

作者: handan     时间: 2007-11-24 15:04
我刚开始学习批处理 我是这样想的
千万别笑话呀
@echo off & setlocal EnableDelayedExpansion
set var=000
for /l %%i in (1 1 100) do (
set var=%var%%%i
set var=!var:~-3!
if not exist a!var! md a!var!
copy bak a!var!
)
pause