找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 88536|回复: 28

[文件操作] [已解决]批处理如何提取文件夹的指定文件出来呢?

[复制链接]
发表于 2015-9-12 12:45:40 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2015-9-15 00:44 编辑

求解,如何提取文件夹的指定内容出来呢?就如以下图片一样,在服务器中的目录下运行命令,
把除了1,2,3,4,5,7,15,16以外的图片拷下来,这可以用命令实现么?
复制的内容可以放到电脑中的一个指定位置中,如 E:\描述图提取
最后要提取的内容是
001,003,006,008,010这几个文件,和其中的一些图片。

测试图片
http://pan.baidu.com/s/1bn6rzgN

评分

参与人数 1PB +2 收起 理由
pcl_test + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-9-12 14:51:31 | 显示全部楼层
本帖最后由 尘丶 于 2015-9-12 15:27 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /s *.jpg') do (
  3.     if not %%~na equ 1 if not %%~na equ 2 if not %%~na equ 3 if not %%~na equ 4 if not %%~na equ 5 if not %%~na
  4. equ 7 if not %%~na equ 15 if not %%~na equ 16 (
  5.     set "str=%%~dpa"
  6.     set "str=!str:~0,-1!"
  7.     for /f "delims=" %%b in ("!str!") do set str2=%%~nb
  8.     md e:\100\!str2! >nul 2>nul
  9.     copy "%%a" e:\100\!str2!
  10. )
  11. )
  12. pause
复制代码
 楼主| 发表于 2015-9-12 15:00:23 | 显示全部楼层
回复 2# 尘丶


    嗯,刚会这个疑问,因为很多时候6图都分重复的,能否实现连文件夹也生成呢?
发表于 2015-9-12 15:27:43 | 显示全部楼层
回复 3# 228630386


    已修改

评分

参与人数 1技术 +1 收起 理由
228630386 + 1 乐于助人

查看全部评分

发表于 2015-9-12 15:39:20 | 显示全部楼层
本帖最后由 回家路上 于 2015-9-12 16:04 编辑

  1. @echo off
  2. :: 目标文件夹
  3. set dest=E:\描述图提取\
  4. :: 图片根目录,批处理所在文件夹,可修改
  5. set rootpath=%~dp0
  6. :: 要拷贝的文件夹
  7. set res=001,003,006,008,010
  8. :: 要排除的图片
  9. set exc=1,2,3,4,5,7,15,16
  10. for %%i in (%res%) do (
  11.         pushd %rootpath%%%i\
  12.         for /f "delims=" %%j in ('dir *.jpg /b /a-d') do (
  13.                 for %%a in (%exc%) do if "%%~nj" equ "%%a" set f=1
  14.                 if not defined f xcopy /y %%~fj %dest%%%i\
  15.                 set "f="
  16.         )
  17.         popd
  18. )
  19. pause & exit /b
复制代码
 楼主| 发表于 2015-9-12 15:45:30 | 显示全部楼层
回复 4# 尘丶


    可以了,命令实在太强大了,不但速度快,准确还100%。
    如果命令在服务器中运行,应该也可以实现吧?这要回到公司才能测试。。非常感谢,在工作中可以省下不小时间!
 楼主| 发表于 2015-9-12 15:46:32 | 显示全部楼层
回复 5# 回家路上


    因为每次图片可能在不同的文件夹中的,如果指定的话,用到其它文件夹中就不能实行。
发表于 2015-9-12 15:58:15 | 显示全部楼层
回复 7# 228630386


额,我指定的也是当前文件夹。(⊙﹏⊙)b
 楼主| 发表于 2015-9-12 16:01:19 | 显示全部楼层
回复 8# 回家路上


    set res=001,003,006,008,010
 哪这个是什么意思呢?
发表于 2015-9-12 16:08:19 | 显示全部楼层
回复 9# 228630386


行吧,你问题已经解决了就行了。
发表于 2015-9-12 18:12:15 | 显示全部楼层
通常都是从客户端访问服务器进行文件下载,LZ却要从服务器直接分发文件到客户端,那么,客户端设置了可写的权限没?
 楼主| 发表于 2015-9-12 19:41:33 | 显示全部楼层
回复 11# pcl_test

因为图片都是放在服务器中的,如果不能实现在服务器中操作,只能整个文件夹拷在本地中再运行命令。
客户端设置了可写的权限没?这个我也不太清楚,不过之前写了一些命令都是要本机运行,然后在服务器复制下来做备份。
 楼主| 发表于 2015-9-14 13:22:26 | 显示全部楼层
回复 2# 尘丶


    你好,批处理中能否也可以生成当前文件的文件名,如果“测试文件”中下有多个带有多个提取的结果。
   “测试文件”这个文件名能否也能生成,具体文件名每次都不同,应该是在md后面改的,但我改了不可以,求指点。
发表于 2015-9-14 18:36:52 | 显示全部楼层
本帖最后由 尘丶 于 2015-9-14 18:38 编辑

当前文件名字
FOR
命令中的变量  FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把FOR的变量全部列出来:      
~I       - 删除任何引号("),扩展 %I     
删除引号规则如下(BAT兄补充!)  1、若字符串首尾同时存在引号,则删除首尾的引号; 2、若字符串尾不存在引号,则删除字符串首的引号;  3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。 龙卷风补充:无头不删,有头连尾删。
%%i:文件完整信息
%~fI     - 将 %I 扩展到一个完全合格的路径名     
%~dI     - 仅将 %I 扩展到一个驱动器号     
%~pI     - 仅将 %I 扩展到一个路径     
%~nI     - 仅将 %I 扩展到一个文件名     
%~xI     - 仅将 %I 扩展到一个文件扩展名     
%~sI     - 扩展的路径只含有短名     
%~aI     - 将 %I 扩展到文件的文件属性     
%~tI     - 将 %I 扩展到文件的日期/时间     
%~zI     - 将 %I 扩展到文件的大小      
如果不清楚最好另外发个帖子提问再加上要求和图片那样,直接描述比较难懂
 楼主| 发表于 2015-9-14 21:09:51 | 显示全部楼层
回复 14# 尘丶


应该在你给的基础上修改就可以了,因为每个品牌提取都不同,想这个也能生成文件名,然后文件名内就是提取的结果。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /s *.jpg') do (
  3.     if not %%~na equ 1 if not %%~na equ 2 if not %%~na equ 3 if not %%~na equ 4 if not %%~na equ 5 if not %%~na
  4. equ 7 if not %%~na equ 15 if not %%~na equ 16 (
  5.     set "str=%%~dpa"
  6.     set "str=!str:~0,-1!"
  7.     for /f "delims=" %%b in ("!str!") do set str2=%%~nb
  8.     md e:\100\!str2! >nul 2>nul
  9.     copy "%%a" e:\100\!str2!
  10. )
  11. )
  12. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 16:05 , Processed in 0.018324 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表