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

    @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-09-20 10:42:13

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

备份-求大神告诉我为什么我下面这个批处理复制时唯独windows目录里的文件拷贝不出来 试过右键管理员

问题描述 求大神告诉我为什么我下面这个批处理复制时唯独windows目录里的文件拷贝不出来 试过右键管理员 echo off set /p zf= 输入字符(如 .txt;a.txt;???s.*): set /p lj= 设置你要备份的路径(如 c:): md %lj% for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (for /f "tokens=*" %%i in ('dir /a-d /b

跳过-用命令提示符把文件夹a中的文件复制到文件夹b,如果b中已经有了就不再复制。

问题描述 用命令提示符把文件夹a中的文件复制到文件夹b,如果b中已经有了就不再复制. 只对比文件名就行,如果a和b都有1.txt,但不是同一个文件,就跳过吧(最好给个提示) 解决方案 xcopy可以支持目录复制, -Y参数提示是否覆盖已存在文件. 解决方案二: 没明白,你指的是在dos里? 解决方案三: if not exist b1.txt (copy a1.txt b1.txt) 解决方案四: 可以在批处理中使用copy命令的/-Y开关就可以了.

脚本-bat批处理复制服务器上的多个文件

问题描述 bat批处理复制服务器上的多个文件 各位大大问题如下哈: 我访问服务器是通过192.168.61.38补丁 这个路径来访问服务器上的补丁文件的,然后我当前有一个存放在excel里的名单,里面是一些我想找出来的补丁的名称,不一定放excel,也可以放在txt,这个不是问题,主要是这个名单里的补丁只是服务器上的补丁的一小部分而已,我希望能通过一个bat,读取txt里的补丁名单,然后将服务器上的补丁复制到本地,但是名单上是补丁的文件夹名,我希望复制下来文件夹名以及对应在里面的子文件都可以复制

windows 2003下 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备份时排除指定目录或文件 要排除指定目录

linux中tar压缩时排除某些目录或文件

在对某个目录进行压缩的时候,有时候想排除掉某个目录,示例如下: 比如文件目录包含以下文件及目录  代码如下 复制代码 api api/addons api/connect api/connect/connect.php api/google api/remote api/remote/mod 我们要压缩不包含google文件夹.connect/connect.php以及remote下mod文件夹  代码如下 复制代码 tar -zcvf mytest.tar.gz api --exclude=g

右键添加移动/复制到文件夹的方法

  平时复制.移动文件,最基本的方法是:复制或剪切文件,然后进入目标文件夹进行粘贴操作.也许通过资源管理器操作可以方便一些,但是如果在多个文件夹当中切换可就麻烦了,而且即便在资源管理器当中,也要上下寻找目标文件夹,颇为不便. 能不能更简便?其实用Windows系统自己的功能就可以了--将复制和移动的功能放到鼠标右键菜单中,操作起来就会轻松很多.下面就教你如何完成! 整个操作只需要对注册表进行简单的修改,手动操作方法是在开始菜单中选择"运行",在弹出的窗口中输入"regedit

我希望能复制一个文件件里的多张图片到另外一个文件夹用file.copy有问题

问题描述 我希望能复制一个文件件里的多张图片到另外一个文件夹用file.copy有问题 private void button1_Click(object sender, EventArgs e) { File.Copy(@"C:UsershjxDesktop33333",@"E:TESTJavaScriptTESTJavaScriptTESTima"); //FileInfo fi = new FileInfo(@"C:UsershjxDesktop33

用批处理上传文件到ftp目录下的实现方法_DOS/BAT

为了快速将项目中开发的补丁程序通过ftp快速上传到linux下,感觉每次用flashFxp等工具麻烦),写了个简单的批处理,与大家分享一下. 将以下代码保存为.bat格式的文件,每次将要上传的补丁保存在规定的本地目录中,只要双击执行此文件就能上传到你的指定目录上. 说明: 192.168.1.1 ftp ip 地址 21 端口 username 用户名 password 密码 temp.txt 保存ftp信息的临时文件,上传后删除 C:\Documents and Settings\user\桌

PHP 创建文件(文件夹)以及目录操作代码_php技巧

一.目录操作 首先是从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: 复制代码 代码如下: <?php $base_dir="filelist/"; $fso=opendir($base_dir); echo $base_dir."<hr/>"; while($flist=readdir($fso)){ echo $flist."<br/>";