批处理复制文件(文件夹)排除某目录,某些类型(草稿)

    @echo off
    REM 查询字符串是否包含某字符串
     REM @echo off & SET 变量1=C:\你妹D\大调     REM echo %变量1%|find /i "C:\你妹D">nul 2>nul&&echo true||echo false
     REM pause>nul

    set pathDst=C:\Users\Administrator\Desktop\Dst
    set pathSrc=E:\Src

    REM =================需要排除的目录或者文件类型=================
    set excludeDir=obj,
    set excludeFile=pdb cs csproj user
    Rem =================清空目标文件夹所有子文件夹和文件=================

    if exist "%pathDst%" (
    echo 目标文件夹已存在!
    cd /d "%pathDst%"
    for /d %%i in (*) do (
    rd /s /q "%%i"
    del /a /f /q *.*
    )
    echo 目标文件夹清空完成!
    )
REM 复制所有文件夹以及文件
xcopy /y /e /h %pathSrc%  %pathDst% >nul
echo 复制所有
 for %%c in (%excludeFile%) do (
del  "%pathDst%\*.%%c"
)
    for /d /r %pathDst% %%i in (*) do (
    setlocal enabledelayedexpansion
    set "aa=%%i"
    REM set aa=!aa:%pathDst%=!
    if  exist "!aa!" (
    set "A1=!aa!"
    set "A2=%pathDst%\obj"
    set "EXISTS_FLAG=false"
    echo "!A1!"|find /i "!A2!" >nul 2>nul&& set "EXISTS_FLAG=true"||set "EXISTS_FLAG=false"
    if  !EXISTS_FLAG!==true (
    echo !A1!
    rd /s /q "!A1!"
    ) else (

for %%c in (%excludeFile%) do (
del  "!A1!\*.%%c"
)
    )
    )
    endlocal
    )
    echo 完成
    pause>nul
    rem    echo %pathSrc% 

    Rem =================源文件夹及子文件夹=================
    REM for /r  %pathSrc%  %%i in (*.txt *.jpg *.png) do (
    REM echo E:%%~pi
    REM set var=!var:*%cd%=!
    REM )

    REM Rem =================字符串替换,源字符串不变=================
    REM set aa=伟大的中国!我为你自豪!
    REM echo 替换前:%aa%
    REM echo 替换后:%aa:中国=中华人民共和国%
    REM echo aa = %aa%
    REM set "aa=%aa:中国=中华人民共和国%"
    REM echo aa = %aa%

    REM Rem =================遍历所有的子目录(方法1)=================
    REM for /f "delims=" %%a in (‘dir /ad/s/b %pathSrc%‘) do (
    REM rem 获取文件夹完整路径(最后不带\)
    REM echo %%~a
    REM rem 获取文件夹完整路径(最后不带\)
    REM echo %%a
    REM rem 回去文件夹名称
    REM echo %%~na
    REM )

    Rem =================遍历所有的子目录(方法2)并复制所有目录=================
    REM set EXISTS_FLAG=false
    REM for /d /r %pathSrc% %%i in (*) do (
    rem echo %%i
    REM setlocal enabledelayedexpansion
    REM set "aa=%%i"
    rem echo !aa!
    REM set aa=!aa:%pathSrc%=!
    rem echo !aa!
    rem echo %pathDst%!aa!
    REM if not exist "%pathDst%!aa!" ( 

    REM set "A1=%pathSrc%!aa!"
    REM set "A2=%pathSrc%\obj"

    REM set "EXISTS_FLAG=false"
    REM =================搜索某字符串是否包含另一个字符串=================
    REM echo "!A1!"|find /i "!A2!" >nul 2>nul&& set "EXISTS_FLAG=true"||set "EXISTS_FLAG=false"
REM echo !EXISTS_FLAG!
    REM if  !EXISTS_FLAG!==true (
    REM echo "%pathSrc%!aa!"
    REM echo "%pathSrc%\obj"
    REM ) else (
    REM md "%pathDst%!aa!"

REM for %%c in (%excludeFile%) do (
REM xcopy /s/e/c "!A1!\*.%%c" "%pathDst%!aa!"
REM )
    REM )
    REM )
    REM endlocal
    REM )
pause
时间: 2024-11-06 17:56:39

批处理复制文件(文件夹)排除某目录,某些类型(草稿)的相关文章

利用批处理命令复制指定文件到指定目录下

复制文件到指定路径 关于复制指定文件到指定路径,一般而言指的是对备份文件,因为其具有增长性, 所以添加任务计划之后会按时进行备份,对于常规文件同样适用. 其步骤大致分为: 1:  设定要复制文件的名称(若为每日备份文件要获取系统时间) 2:  设定复制文件的原路径和目标路径进行复制 3:  退出复制程序 例如:复制Y盘目录下文件到D盘目录下 rem 关闭回显 @echo off rem   设定文件时间 set d=%date:~0,10% set d=%d: =0% rem 设定需要复制的文件

批处理--复制,解压文件,goto,nul

rem 复制文件 copy "D:\xxxx" "C:\xxxx" rem 复制文件夹 xcopy "D:\xxxx" "C:\xxxx" /e /i /h 解压使用开源的7z命令版本(license GNU LGPL) 7za x -y D:\xxxx.zip -oC:::其中 -y 是覆盖 ::-oC:\ 是输出到C:\下 rem if errorlevel可以捕获错误 if errorlevel 数字 ::数字从大到小排

rsync 排除指定目录或文件进行同步

很常见的情况:我想同步/myweb下的 一些php文件 ,  但是不想复制/myweb/log/里边的一些日志文件,因为这些文件太大了,备份也是没有意义的. 现在如果想避开某个路径  直接添加—exclude 即可 比如—exclude “./log” –exclude ‘./log/file’ Note: the directory path is relative to the folder you are backing up. rsync备份时排除指定目录或文件 要排除指定目录,可以在客

Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例

1. 复制多级文件夹的案例 需求:复制多级文件夹   数据源:E:\JavaSE\day21\code\demos 目的地:E:\   分析:         A:封装数据源File         B:封装目的地File         C:判断该File是文件还是文件夹        a:是文件夹 就在目的地目录下创建该文件夹 获取该File对象下的所有文件或者文件夹File对象 遍历得到每一个File对象 回到C                     b:是文件             

File类——复制指定文件夹

输入需要复制的目标文件夹 输入需要复制到的目的文件夹 public class CopyDir { static Scanner in = new Scanner(System.in); static File dir=null; public static void main(String[] args) { System.out.println("请输入需要复制的目标文件夹的路径:"); String need = in.nextLine(); dir = new File(nee

linux命令の删除文件和文件夹 复制粘贴文件和文件夹

声明:此博文来自百度经验http://jingyan.baidu.com/article/642c9d34dcba80644a46f72d.html,谢谢分享! linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思 删除文件夹实例:rm -rf /var/log/http

使用字节流复制一个文件夹

package com.tanlei.Demo; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /* * 使用字节流复制一个文件夹 */ public class CopyDirDemo { public static void main(S

[转帖]如何查看windows某个目录下所有文件/文件夹的大小?

https://www.cnblogs.com/gered/p/10208281.html 挺好的工具 linux 上面 我就是使用 du -ah --max-depth=1 来查看了 windows 有这么一个好用的工具也挺好呢. 如何查看windows某个目录下所有文件/文件夹的大小? TreeSize Free绿色汉化版是一款硬盘空间管理工具,用树形描述出来,能够显示文件大小和实际占用空间数及浪费的空间等信息,让你做出相应的删除决定. 下载地址:https://www.3987.com/x

用C#操作文件/文件夹(删除,复制,移动)

操作某一个文件/文件夹,需要一个文件的完整路径 一.使用File的静态方法进行文件操作 //使用file的静态方法进行复制 File.Copy(path, destpath); //使用File的静态方法删除路径下的一个文件 File.Delete(path); //使用File的静态方法移动路径下的一个文件 File.Move(path, destpath); File.ReadAllText(path); //打开一个文本文件*.txt ,读取文件中数据,然后关闭该文件 //写入 File.