[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】求批处理代码排除指定文件夹复制其余文件夹

把B,C, d E f 文件夹移动到 2015-8-21文件夹里面 而不移动已备份文件夹
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 12# 回家路上


    刚看到回复~问题解决了 thank you

TOP

回复 11# 开心旺旺


自己写入,自己还要删除,自己占自己肯定不行啊。那就一步一步来,先删了在拷贝呗。
  1. @echo off
  2. set "排除=已备份;A;B"
  3. set "拷贝到=2015-8-21"
  4. for /f "delims=" %%i in ('dir /ad /b') do (
  5. for %%a in (%排除%) do (
  6. if "%%i" equ "%%a" set c=1
  7. )
  8. if not defined c if "%%i" neq "%拷贝到%" (
  9. rd /s /q "%拷贝到%\%%i" 2>nul
  10. move /y "%%i" "%拷贝到%" 2>nul
  11. set c=
  12. )
  13. )
  14. pause & exit /b
复制代码
1

评分人数

TOP

回复 10# 开心旺旺


    如果2015文件夹和外面有一致的就拒绝访问了 求解

TOP

回复 9# flyinnet9


    我还有一个问题想指教,如果2015那个文件夹里面有,外面也有,能直接替换么

TOP

建一个名为“排除.txt”文件,把排除项写在文件中,一行一个
然后和bat放同一目录
  1. @echo off
  2. set flag=
  3. set "dst=2015-8-21"
  4. for /f "delims=" %%a in ('dir /ad /b') do (
  5.   if not "%%a"=="%dst%" (
  6.     for /f "delims=" %%b in (排除.txt) do (
  7.       if "%%a"=="%%b" set flag=1
  8.     )
  9.     if not defined flag move "%%a" ".\%dst%"
  10.   )
  11. )
复制代码

TOP

本帖最后由 开心旺旺 于 2015-8-21 14:14 编辑

@echo off
set "排除=已备份"
set "排除=A"
set "排除=B"
set "拷贝到=2015-8-21"
for /f "delims=" %%i in ('dir /ad /b') do (
        if "%%i" neq "%排除%" if "%%i" neq "%拷贝到%" move /y "%%i" "%拷贝到%"
)
pause & exit /b


这样就不行  A文件夹还会移动进去,如果排除2个或者更多文件夹,这个就不太好用了

TOP

回复 4# 回家路上


    如果排除多个文件夹 要怎么修改

TOP

回复 4# 回家路上


    如果移动的文件正在使用,最好能出一个LOG 报告

TOP

回复 4# 回家路上


    好的

TOP

回复 3# 开心旺旺
  1. @echo off
  2. set "排除=已备份"
  3. set "拷贝到=2015-8-21"
  4. for /f "delims=" %%i in ('dir /ad /b') do (
  5. if "%%i" neq "%排除%" if "%%i" neq "%拷贝到%" move /y "%%i" "%拷贝到%"
  6. )
  7. pause & exit /b
复制代码
那个重复贴可以删掉了。

TOP

回复 2# flyinnet9


    我重新描述了下,可能没说清楚

TOP

  1. @echo off
  2. cd /d d:\a
  3. for /f "delims=" %%a in ('dir /ad /b') do (
  4.   if not "%%a"=="B" (
  5.     if not "%%a"=="D" move "%%a" "f:\z"
  6.   )
  7. )
复制代码

TOP

返回列表