[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. for /f "delims=" %%i in ('dir /a:-d /b') do (
  3.     echo "%%i" | findstr "ex" && (
  4.         copy "%%i" \\192.168.20.2\Report\dj
  5.         set /a n += 1
  6.     )
  7.     echo "%%i" | findstr "花肥 亚欧 敖德萨" && (
  8.         copy "%%i" \\192.168.20.2\Report\jj
  9.         set /a n += 1
  10.     )
  11. )
  12. echo 复制了 %n% 个文件
  13. echo 按任意键退出
  14. pause
复制代码
建议用以下代码,虽然代码比你原来的多,但是速度快一点。
(以下代码不能统计复制数量。。)
  1. @echo off
  2. for /f "delims=" %%i in ('dir /a:-d /b') do (
  3.     set var=%%i
  4.     SetLocal EnableDelayedExpansion
  5.     if "!var:ex=!" neq "!var!" (
  6.         copy "!var!" \\192.168.20.2\Report\dj
  7.         set /a n += 1
  8.     )
  9.     for %%a in (花肥 亚欧 敖德萨) do (
  10.         if "!var:%%a=!" neq "!var!" (
  11.             copy "!var!" \\192.168.20.2\Report\jj
  12.             set /a n += 1
  13.         )
  14.     )
  15.     EndLocal
  16. )
  17. echo 复制了 %n% 个文件
  18. echo 按任意键退出
  19. pause >nul
复制代码


[ 本帖最后由 tmplinshi 于 2010-12-26 17:40 编辑 ]

TOP

回复 5楼 的帖子

是的,我偶尔会犯这个错误。。那个方法只能改用临时文件,或不兼容英文感叹了。

直接 dir 的方法也不错。
  1. @echo off
  2. for %%a in (*ex*) do (
  3.     copy "%%a" \\192.168.20.2\Report\dj
  4.     set /a n += 1
  5. )
  6. for %%a in (*花肥*  *亚欧* *敖德萨*) do (
  7.     copy "%%a" \\192.168.20.2\Report\jj
  8.     set /a n += 1
  9. )
  10. echo 复制了 %n% 个文件
  11. echo 按任意键退出
  12. pause >nul
复制代码

TOP

返回列表