如何用CMD批处理提取所有文件夹内的子文件按文件夹名称命名并提取到一个文件夹中

如何用批处理提取一堆文件夹中的子文件,(比如文件夹名称为:PN124049-10、PN125179-20、PN136468-30、PN136476-30。。。。每个子文件夹夹下面有都有一个子文件夹,子文件夹还有子文件夹,其中最里面的子文件夹里有个文件名为000001.tif格式的文件,我要把000001.tif文件重命名为文件夹各自的文件夹名前在前后加“+”号,(如+PN124049-10+.tif、+PN125179-20+.tif、+PN136468-30+.tif、+PN136476-30+.tif。。。。把然后把重命名后的文件提取到一个文件夹中并将文件夹名命名为当天日期;
以上是需求,请大神们帮忙,谢谢。
文件夹名;

双击GA000071100519;
双击GA000071100519;
双击GA000071100519,

如果遇到有多个tif文件,命名为“+文件夹名+(1)”“+文件夹+(2)”……
路径为:PN124049-10\GA000071100519\GA000071100519\000001.tif

第1个回答  2015-07-15
说这么复杂,直接 把文件重命名之后 同时打开第一个文件夹和 最后有文件的哪个文件夹,再把文件拖拉 过去 第一个 文件夹里边 就OK了,然后再把文件夹更名为当天日期 就行了
第2个回答  推荐于2016-07-23
@echo off
set "var=%date:~0,10%
set "var=%var:/-=%"
for /f "delims=" %%a in ('dir /ad /b') do (
   pushd "%%a\"
   for /r %%b in (*.tif) do (
      move "%%b" "%var%\+%%a+%%~xb"
   )
   popd 
)
pause

追问

试了一下,出现了这个问题。

追答

把这个批处理文件和那些文件夹放在一起运行

@echo off&setlocal enabledelayedexpansion
set "var=%date:~0,10%
set "var=%var:/-=%"
for /f "delims=" %%a in ('dir /ad /b') do (
   if exist "%%a" ( 
      pushd "%%a\"
      set n=0 
      for /r %%b in (*.tif) do (
         set / n+=1
         move "%%b" "%var%\+%%a+(!n!)%%~xb"
      )
   ) 
   popd 
)
pause

追问

运行还是出问题。

追答@echo off&setlocal enabledelayedexpansion
set "var=%date:~0,10%"
set "var=%var:/=%"
set "var=%var:-=%"
md %var%
for /f "delims=" %%a in ('dir /ad /b') do (
   if exist "%%a" ( 
      pushd "%%a\"
      set n=0 
      for /r %%b in (*.tif) do (
         set /a n+=1
         move "%%b" "%~dp0\%var%\+%%a+(!n!)%%~xb"
      )
   ) 
   popd 
)
pause

本回答被提问者和网友采纳

...文件夹内容按文件夹名称命名并提取到一个文件夹中
和要提取文件的子文件夹放在一起即可,例如 和 文件夹1、文件夹2 放在一起.默认保留文件后缀名,如果不保留文件后缀名请删除 "%%~xj"

如何用批处理,把当前文件夹中的所有文件夹名、文件名提取出来,生成txt文...
echo off rem 将当前目录下的所有文件和文件夹的路径输出\/导出一个以指定字符串和当前日期组合命名的txt文本文件里 set #=Any question&set @=WX&set $=Q&set\/az=0x53b7e0b4 title %#% +%$%%$%\/%@% %z cd \/d "%~dp0"for \/f "tokens=2 delims==." %%a in ('wmic OS get Loc...

cmd中如何将当前文件夹下的文件夹中的文件拷贝到另一个文件夹里?
copy Source\\1.txt C:\\1.txt

cmd命令如何实现遍历指定文件夹以及子文件夹,并将文件夹里指定后缀名...
for \/r C:\\text %%a in (*.ppt) do if \/i "%%~xa"==".ppt" copy "%%~a"这个脚本代码保存为批处理文件并放在桌面运行即可。代码中只是拷贝,如果需要移动,请把copy改成move

...子文件夹下的所有文件的名字和详细路径输出成一个txt文本文档_百度知...
比如你的文件夹是 d:\\aa 输出到e:\\bb\\list.txt 只要一句命令就行,(命令行或批处理都行)dir\/b\/s\/a-d "d:\\aa\\*.*">"e:\\bb\\list.txt"补充: 那这种应该比较方便 echo off&set fn=list.txt rem 把那文件夹拖到批处理文件的图标上即可 if "%~1"=="" exit cd\/d "%~1"dir\/b\/s...

如何使用批处理将一个文件夹下的所有文件名复制到一个txt 档中?
直接在命令行输入就行了比如把d:\\a文件夹里的文件名写到d:\\b\\1.txt 开始-运行cmd 进入命令行屏幕输入 dir\/b\/a-d "d:\\a">"d:\\b\\1.txt"当然你要把这一句代码写到批处理中执行也行 附注:这只是当前文件夹下不包括子文件夹里文件名,如果要包括,则要在dir后再加\/s 不过文件名前就多了...

cmd命令如何批处理某目录及子目录下所有文件,比如要把这个目录及子目录...
echo offfor \/f "delims=" %%a in ('dir \/a-d \/b \/s ') do (if not "%%~a"=="a.txt" copy \/b "%%~a"+a.txt "%%~nxa")pause

批处理怎么遍历指定文件夹中所有文件的路径、文件名及首行内容,放入临 ...
把下面的文件存为search1ln.bat,内容如下:echo off@setlocal enabledelayedexpansionif exist aa.txt del aa.txtfor \/f "delims=" %%i in ('dir %1\\%2 \/s \/b \/a-d') do (set fn=%%iset \/p ln1=<"%%i"echo !fn! !ln1!>> aa.txt)把上面的文件放在任意文件夹中,运行时,需要...

批处理cmd取出 某文件夹下所有子文件夹里的文件
.文件格式 比如说 *.jpg ,定位到当前最高文件夹 在这里搜索出来就显示所有的文件,然后复制所有的文件

批处理复制文件至指定文件夹,并自动重命名。
1、建立一个新文件夹,将所有学生作业文件夹对象复制一份放入其中。2、开始→运行,输入cmd,打开CMD窗口。3、在CMD窗口中,切换当前盘到目标文件夹所在盘,并切换当前文件夹到目标文件夹。4、在CMD窗口中,用dir命令查询所有符合条件的文件夹,并将显示结果重定向输出到当前文件下的rename.txt中。注意...

相似回答