标题: [文件操作] [已解决]批处理,将当前目录下所有满足条件的jpg、mp4文件,移动到某个文件夹里。 [打印本页]
作者: ygqiang 时间: 2016-2-22 08:28 标题: [已解决]批处理,将当前目录下所有满足条件的jpg、mp4文件,移动到某个文件夹里。
本帖最后由 ygqiang 于 2016-2-22 13:50 编辑
[已解决]批处理,将当前目录下所有满足条件的jpg、mp4文件,移动到某个文件夹里。
当前目录下,文件如果满足下面的条件,
就移动到当前目录下的某个文件夹里(名字是:zuk手机)
IMG_*_*.jpg(开头是IMG_,中间有_,扩展名是jpg)
Screenshot_*.jpg(开头是Screenshot_,扩展名是jpg)
VID_*.mp4(开头是VID_,扩展名是mp4)
比如
IMG_20151211_192725.jpg
IMG_20151216_153156.jpg
IMG_20151216_211727.jpg
IMG_20151229_170705.jpg
IMG_20160104_083240.jpg
IMG_20160116_183629.jpg
IMG_20160211_081017.jpg
Screenshot_2016-01-13-19-27-29.jpg
Screenshot_2016-01-16-17-24-16.jpg
Screenshot_2016-01-22-19-26-01.jpg
VID_20160119_104129.mp4
VID_20160124_101819.mp4
作者: k1314521jx 时间: 2016-2-22 10:16
@echo off
xcopy /c /s /y *.jpg E:\test\
xcopy /c /s /y *.mp4 E:\test\
pause
作者: ivor 时间: 2016-2-22 10:39
本帖最后由 ivor 于 2016-2-22 10:43 编辑
- #!/usr/bin/env python
- # Python 3.5.1
- # coding:utf-8
- import os, re
-
- if not os.path.exists("zuk手机"):
- os.mkdir("zuk手机")
- for file in os.listdir("."):
- if file.endswith(".jpg") | file.endswith(".mp4"):
- if file.startswith("IMG") | file.startswith("VID") | file.startswith("Screenshot"):
- os.rename(file, "zuk手机//%s" % file)
复制代码
作者: ygqiang 时间: 2016-2-22 11:30
ivor 发表于 2016-2-22 10:39
能否用bat代码直接完成。谢谢。
作者: ygqiang 时间: 2016-2-22 11:33
ivor 发表于 2016-2-22 10:39
当前目录下,文件如果满足下面的条件,
就移动到当前目录下的某个文件夹里(名字是:zuk手机)
IMG_*_*.jpg(开头是IMG_,中间有_,扩展名是jpg)
Screenshot_*.jpg(开头是Screenshot_,扩展名是jpg)
VID_*.mp4(开头是VID_,扩展名是mp4)
作者: ivor 时间: 2016-2-22 12:03
本帖最后由 ivor 于 2016-2-22 12:43 编辑
回复 5# ygqiang - @echo off
-
- for /f "delims=" %%a in ('dir /b *.jpg *.mp4') do (
- echo %%a | findstr /R "^IMG_.*_.*\.jpg" && move "%%a" ".\zuk手机\%%a"
- echo %%a | findstr /R "^Screenshot_.*\.jpg" && move "%%a" ".\zuk手机\%%a"
- echo %%a | findstr /R "^VID_.*\.mp4" && move "%%a" ".\zuk手机\%%a"
- )
- pause
复制代码
作者: ygqiang 时间: 2016-2-22 12:25
回复 6# ivor
findstr /R "^IMG_.*" && move "%%a" ".\zuk手机\%%a"
实验过了。这个代码不满足要求。
要求是:IMG_*_*.jpg(开头是IMG_,中间有_,扩展名是jpg)
如果有IMG_0103.JPG这种图片文件,不需要移动。
作者: ivor 时间: 2016-2-22 12:42
回复 7# ygqiang
我在6楼的代码已更新
作者: ygqiang 时间: 2016-2-22 13:14
回复 ygqiang
我在6楼的代码已更新
ivor 发表于 2016-2-22 12:42
测试过了,好用。谢谢
作者: ygqiang 时间: 2016-2-22 13:31
本帖最后由 ygqiang 于 2016-2-22 13:37 编辑
回复 ygqiang
我在6楼的代码已更新
ivor 发表于 2016-2-22 12:42
多谢。请教另一个问题。。。
下面的代码,如果最终没有满足移动条件的文件,这样zuk手机目录下就是空的了。
如何修改代码,判断避免生成空的zuk手机文件夹?
(或者最后判断目录下没有文件就删除目录)- @echo off
-
- echo 保存文件执行路径
- pushd "%~dp0"
-
- if not exist "d:\%date:~0,4%-%date:~5,2%" md "d:\%date:~0,4%-%date:~5,2%"
- if not exist "d:\%date:~0,4%-%date:~5,2%\zuk手机" md "d:\%date:~0,4%-%date:~5,2%\zuk手机"
-
- cd /d "d:\%date:~0,4%-%date:~5,2%"
-
- for /f "delims=" %%a in ('dir /b *.jpg *.mp4') do (
- echo %%a | findstr /R "^IMG_.*_.*\.jpg" && move "%%a" ".\zuk手机\%%a"
- echo %%a | findstr /R "^Screenshot_.*\.jpg" && move "%%a" ".\zuk手机\%%a"
- echo %%a | findstr /R "^VID_.*\.mp4" && move "%%a" ".\zuk手机\%%a"
- )
-
- echo 恢复文件执行路径
- popd
- exit
复制代码
作者: ivor 时间: 2016-2-22 13:41
- dir .\zuk手机 /b | findstr /r ".*" || rd .\zuk手机
复制代码
如果.\zuk手机 没有任何文件,删除文件夹
作者: ygqiang 时间: 2016-2-22 13:49
最终代码。。。- echo 保存文件执行路径
- pushd "%~dp0"
-
-
- if not exist "d:\%date:~0,4%-%date:~5,2%" md "d:\%date:~0,4%-%date:~5,2%"
-
- if not exist "d:\%date:~0,4%-%date:~5,2%\zuk手机" md "d:\%date:~0,4%-%date:~5,2%\zuk手机"
-
- cd /d "d:\%date:~0,4%-%date:~5,2%"
-
- for /f "delims=" %%a in ('dir /b *.jpg *.mp4') do (
- echo %%a | findstr /R "^IMG_.*_.*\.jpg" && move "%%a" ".\zuk手机\%%a"
- echo %%a | findstr /R "^Screenshot_.*\.jpg" && move "%%a" ".\zuk手机\%%a"
- echo %%a | findstr /R "^VID_.*\.mp4" && move "%%a" ".\zuk手机\%%a"
- )
-
- dir .\zuk手机 /b | findstr /r ".*" || rd .\zuk手机
-
-
- echo 恢复文件执行路径
- popd
-
- exit
复制代码
作者: ygqiang 时间: 2016-2-22 14:12
如果.\zuk手机 没有任何文件,删除文件夹
ivor 发表于 2016-2-22 13:41
-
- for /f "delims=" %%a in ('dir /b *.*') do (
- move "%%a" "C:\000\00-00\新建文件夹\%%a"
- )
复制代码
- for /f "delims=" %%a in ('dir /b *.*') do (
- move "%%a" "C:\000\00-00\新建文件夹"
- )
复制代码
请问下,这2个代码,没啥差别吧?完全一样的效果?
作者: ivor 时间: 2016-2-22 14:24
回复 13# ygqiang
区别就是,第一个 可以更改文件名字,有时也会用move 当做rename使用
作者: WHY 时间: 2016-2-22 19:06
通配符,不可以吗?- md 某个文件夹 2>nul
- move IMG_*_*.jpg 某个文件夹\
- move Screenshot_*.jpg 某个文件夹\
- move VID_*.mp4 某个文件夹\
复制代码
作者: codegay 时间: 2016-2-22 20:02
应该有支持正则表达式的移动文件用的命令吧?
作者: ygqiang 时间: 2016-2-23 09:13
通配符,不可以吗?
WHY 发表于 2016-2-22 19:06
多谢。这个更简单、效率更高。。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |