Board logo

标题: 请教 copy文件时候,排除特殊目录和文件 [打印本页]

作者: iipiip     时间: 2008-9-4 16:12    标题: 请教 copy文件时候,排除特殊目录和文件

--output       
--projects
        --project1
                     --bin
                          --debug
                                           project1.dll
                                           project1.xml
                          --release
                                           project1.dll
                                           project1.xml
                     --obj
                          --debug
                                           project1.dll
                                           project1.xml
                                    project1.pda
                          --release
                                           project1.dll
                                           project1.xml
        --project2
                     --bin
                          --debug
                                           project1.dll
                                           project2.dll
                                           project2.xml
                     --obj
                          --debug
                                           project1.dll
                                           project1.xml
                                    project1.pda
..............
output文件夹 和projects文件夹是同级的,projects文件夹里面有多个project文件[文件名不一样],每一个project文件里面都有一个bin文件和obj文件,bin文件夹和obj文件夹里面有debug和release文件夹,现在我想把bin文件夹里面的debug文件夹的东西的拷贝到output里面,可是不要obj里面的,而且,因为project2里面也有project1.dll这个文件,我需要跳过这个文件,这个批处理对我来说,太难的。请各位帮忙一下。

[ Last edited by iipiip on 2008-9-4 at 04:14 PM ]
作者: iipiip     时间: 2008-9-4 16:17
应该是 bin文件夹里面的debug文件夹的*.dll,*.xml文件的拷贝到output文件夹里面
作者: HAT     时间: 2008-9-4 16:32
是不是这个意思?
CODE:  [Copy to clipboard]
@echo off
set SrcDir=C:\test\projects
set DstDir=C:\test\output
for /f "tokens=*" %%a in ('dir /s /b /a-d "%SrcDir%"^|findstr /i "\\bin\\"') do (
  echo n|copy /-y "%%a" "%DstDir%"
)

作者: HAT     时间: 2008-9-4 16:33
汗水,需求变了。
CODE:  [Copy to clipboard]
@echo off
set SrcDir=C:\test\projects
set DstDir=C:\test\output
for /f "tokens=*" %%a in ('dir /s /b /a-d "%SrcDir%"^|findstr /i "\\bin\\debug\\"') do (
  echo n|copy /-y "%%a" "%DstDir%"
)

作者: iipiip     时间: 2008-9-4 16:40
太感谢了。。。。。。。。。。。。。。。。。。。
作者: iipiip     时间: 2008-9-4 16:44
可是我还有一个问题,现在project2是在project1后面,如果是project2在project1前面,是不是project1里面的那个dll没有覆盖project2的?我的想法是又project1文件夹出来的,其他文件夹出来,应该是不覆盖这个的。这个能实现么?再次麻烦HATle

   这些dll名称肯定是project的名称,
作者: HAT     时间: 2008-9-4 16:49
dir的结果默认应该是升序排列的,project1自动排在project2前面。
echo n就是为了后面的不覆盖前面的。
作者: iipiip     时间: 2008-9-4 16:52
呃。。。问题是,可能project1不叫project1.。。我这里是为了方便这样写的。他可能是wpfproject,而project2可能是sileverlightproejct。。。。
作者: HAT     时间: 2008-9-4 16:55
字符串会按照ASCII码排序
wpfproject会排在sileverlightproejct后面
你是说想让wpfproject排在sileverlightproejct前面?
作者: iipiip     时间: 2008-9-4 17:03
呃。。这样说吧,还是上面那个文件表结构,只是project1下面的debug文件夹中有project2.dll
project1
                     --bin
                          --debug
                                           project1.dll
                                           project1.xml
                                           project2.dll
        --project2
                     --bin
                          --debug
                                           project2.dll
                                           project2.xml
我的意思是,copy的时候,project1下面的debug文件夹的内容肯定copy先,那么output文件夹里面project2.dll,然后project2的后面copy的,那么就不会覆盖project2.dll。但是我想我需要的是,project2里面的project2.dll要覆盖output里面的project2.dll。因为project2.dll是project2文件夹产生的。不知道你明白没有~。~ 再次感谢你的帮忙。谢谢
作者: HAT     时间: 2008-9-4 17:27
CODE:  [Copy to clipboard]
@echo off
setlocal enabledelayedexpansion
set SrcDir=C:\test\projects
set DstDir=C:\test\output
for /f "tokens=*" %%a in ('dir /s /b /a-d "%SrcDir%"^|findstr /i "\\bin\\debug\\"') do (
  if exist "%DstDir%\%%~nxa" (
    echo "%%~dpa"|findstr "%%~na">nul 2>nul
    if !errorlevel! equ 0 (
      copy /y "%%a" "%DstDir%"
    )
  ) else (
    copy "%%a" "%DstDir%"
  )
)

作者: iipiip     时间: 2008-9-4 17:28
感谢中。。。。。。。。。。
HAT超级号人
作者: sparklt     时间: 2008-9-5 22:13
同感,现代雷锋
作者: 406317577     时间: 2008-9-6 01:59
有点复杂




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5