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

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

本帖最后由 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
1

评分人数

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

回复 28# pcl_test


    哈哈,我还是不够仔细

TOP

回复 27# flyinnet9

echo;\%%i.jpg)>"$" 已做了限定

TOP

/EXCLUDE参数会排除所有包含字符串的文件,

例如$中含字符串1.jpg,则1.jpg、11.jpg、21.jpg等等都在排除之列

TOP

加个参数呢
另 用 FINDSTR   ”\ “ 要转义
  1. @echo off
  2. for /f "delims=" %%a in ("%cd%") do set "f=%%~na"
  3. (for %%i in (1,2,3,4,5,7,15,16) do echo;\%%i.jpg)>"$"
  4. xcopy *.jpg "E:\描述图提取\%f%\" /e /y /s /EXCLUDE:$
  5. del $
  6. pause
复制代码
1

评分人数

TOP

回复 24# pcl_test


    命令真的很多变,好强大,可以了,非常感谢!

TOP

本帖最后由 pcl_test 于 2015-9-15 13:30 编辑

回复 23# 228630386

修改for /f "delims=" %%a in ("%cd%") do set "f=%%~nxa"


另一种方式
  1. @echo off
  2. for /f "delims=" %%a in ("%cd%") do set "f=%%~nxa"
  3. set "t=\\1.jpg \\2.jpg \\3.jpg \\4.jpg \\5.jpg \\7.jpg \\15.jpg \\16.jpg"
  4. for /f "delims=" %%b in ('findstr /ms .* *.jpg^|findstr /iev "%t%"') do (
  5.     echo;f|xcopy "%cd%\%%b" "E:\描述图提取\%f%\%%b" /y
  6. )
  7. pause
复制代码

TOP

回复 21# pcl_test

亲,又遇到一个新问题了,因为文件名有日期排在前面的,但建出来的文件名只有 "9",
是否类似以下格式的文件名不可以实现完整一模一样的命名?

9.16【图片】天线宝宝衣服专场 五区 192款 业务部 张三(合格98款)

TOP

回复 21# pcl_test


    非常感谢,又一次帮到我了,真心谢谢各位大侠!!!

TOP

本帖最后由 pcl_test 于 2015-9-15 13:30 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ("%cd%") do set "f=%%~na"
  3. set "t=\\1.jpg \\2.jpg \\3.jpg \\4.jpg \\5.jpg \\7.jpg \\15.jpg \\16.jpg"
  4. for /f "delims=" %%b in ('dir /a-d /b /s *.jpg^|findstr /iev "%t%"') do (
  5.     set "p=%%~dpb"
  6.     set "p=!p:%cd%\=!"
  7.     xcopy "%%b" "E:\描述图提取\%f%\!p!" /y
  8. )
  9. pause
复制代码
1

评分人数

TOP

回复 18# 尘丶


就好像这个命令,可以保留文件夹名称的,但我又知道怎么改才行,显示命令错误的。前面的命令可以无视,这只是个例子。

TOP

回复 18# 尘丶


    就是假如这些文件里面,我把命令放到这些文件夹中提取,这些文件中还有多个子文件夹,我需要提取有除了1、2、3、4、5、7、15、16图以外的图片
  我就是想保留主目录的名称。

TOP

本帖最后由 尘丶 于 2015-9-14 22:49 编辑

文件名随机吗? 随机的话有没啥规律举个例子看看可以做不
发效果图
心累~努力,为了美好的明天。

TOP

回复 16# 尘丶


    "测试文件" 只是一个文件夹名,能否换成其它文件夹名也能自动生成,这个文件名不是固定的,可能我表达得不太好。

TOP

回复 15# 228630386
  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:\描述图读取\测试文件\!str2! >nul 2>nul
  9.     copy "%%a" e:\描述图读取\测试文件\!str2!
  10. )
  11. )
  12. pause
复制代码
这样? 不是的话你把文件和要求一起存起来 发个链接出来。
心累~努力,为了美好的明天。

TOP

返回列表