Board logo

标题: [文件操作] [已解决]批处理如何批量将文件移动到以文件名命名的文件夹里并统一更改文件扩展名 [打印本页]

作者: dzweather    时间: 2016-9-8 16:23     标题: [已解决]批处理如何批量将文件移动到以文件名命名的文件夹里并统一更改文件扩展名

求助:批量建立对应文件夹,并对应批量更名(改后缀名)。最后逆操作
【求助内容】:批量建立文件夹、批量更名。以后最后的逆操作。
【详细说明】:1、对本目录内的所有文件(仅flv、pdf、doc、docx类型),建立以对应文件名为名称(全称)的文件夹;
                     2、将文件移动到对应的文件夹中;
                     3、移动后,自动更名后缀为jpg
【样例图】:

===============================
【后续说明】逆操作,就是把上述的操作还原。

【背景说明】因为某云盘只能上传jpg,故将对应文件转为jpg再进行上传;
                  在下载后,再进行逆操作还原原来的目录文件结构。

所以一共两个bat文件,一个正操作,一个逆操作。
请各位大神显神帮助。




提醒:1、建立文件夹时,当前目录的文件名与目录名不允许相同(系统提示)
         2、文件名称中有相关特殊符号,如空格。

因为本人正在学中,但太多了,勉强看到if处。。。



===================================================
好吧,我已经看完了《批处理入门手册》修正版.chm
自己解决了。
正向操作:
  1. @echo off & setlocal enabledelayedexpansion
  2. for %%s in (*.flv *.pdf *.doc *.docx) do (md xx
  3.                              move %%s xx\%%s
  4.                              cd xx
  5.                              ren *.flv *.jpg || ren *.pdf *.jpg || ren *.doc *.jpg || ren *.docx *.jpg
  6.                              cd..
  7.                              ren xx %%s
  8.                             )
  9. pause
复制代码
逆向操作:
  1. @echo off & setlocal enabledelayedexpansion
  2. for /d %%i in (*) do (ren %%i xxx
  3.                       cd xxx
  4.                       for %%j in (*.*) do (ren %%j %%i
  5.                                            move %%i ..
  6.                                           )
  7.                       cd..
  8.                       rd xxx
  9.                      )
  10. pause
复制代码

作者: DiamondbacK    时间: 2016-9-8 16:42

如果只是为了伪装 jpg 绕过网盘检测,那么没有必要改变目录结构,没有必要建立文件夹和移动文件。
作者: wskwfkbdn    时间: 2016-9-8 18:09

不如压缩上传
作者: dzweather    时间: 2016-9-8 19:41

回复 3# wskwfkbdn
压缩太大,每个文件约300M-400M
作者: dzweather    时间: 2016-9-8 19:44

回复 2# DiamondbacK
经手动测试,由于上传的图片文件不会保持原名,它会自动更名为英文格式名称,而上传的文件夹会保持原中文件全部名称。
所以,通过文件夹的名称来保留原来的真正文件名称
作者: wskwfkbdn    时间: 2016-9-8 19:48

使用百度网盘咯
作者: wskwfkbdn    时间: 2016-9-8 19:49

把文件夹当成文件上传是不可取的
作者: pcl_test    时间: 2016-9-9 22:02

  1. @echo off
  2. :begin
  3. cls
  4. echo;1、正操作      2、逆操作
  5. set /p=键入序号:<nul
  6. set c=
  7. for /f %%a in ('xcopy /w . 2^>nul') do if not defined c set "c=%%a"
  8. set "c=%c:~-1%"
  9. echo;%c%
  10. if "%c%" equ "1" (
  11.     for %%a in (*.flv *.pdf *.doc) do (
  12.         md "%%~na\"
  13.         move "%%a" "%%~na\%%~na.jpg"
  14.         ren "%%~na" "%%a"
  15.     )
  16. ) else if "%c%" equ "2" (
  17.     for /d %%a in (*.*) do (
  18.         move "%%a\*.jpg" "%%~na.tmp"
  19.         rd "%%a" /q
  20.         ren "%%~na.tmp" "%%a"
  21.     )
  22. ) else echo;输入无效!&>nul ping -n 2 0&goto begin
  23. pause
复制代码

作者: Bella    时间: 2016-9-9 23:50

本帖最后由 Bella 于 2016-9-10 00:03 编辑

http://www.bathome.net/thread-5814-1-1.html
说明这教程不错, 我挖出来的, 前面的回帖还是2013年
内容可以再精简一下, 做个置顶贴, 也就没这么多伸手党了




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2