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

[文件操作] [已解决]批理如何截取文件名建立文件夹?

请教大侠们....
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in ('dir /b /s /a') do (
  3.         set "temp=%%a"
  4.         set "temp=!temp:-00001.TIF=!"
  5.         md "!temp!"
  6.         move "%%a" "!temp!"
  7. )
复制代码
这个代码只能建立-00001.TIF前的文件名的文件夹,如果我想建立-的前面的文件夹名,要怎么写才好呢,也就是说-后面的不管出现是什么数字时
1

评分人数

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

文件名有几个“-”,打算从哪一个切分呢

TOP

文件有上千个,如*-*.tif,想从-的第一个开始切分,那要怎么做呢

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /s /a') do (
  3.     set "temp=%%a"
  4.     set "temp1=!temp:*-=!"
  5.     call set temp=%%temp:-!temp1!=%%
  6.     md "!temp!"
  7.     move "%%a" "!temp!"
  8. )
复制代码

TOP

回复 4# apang


    不行呢,晕,了..

TOP

不行是什么状况?

TOP

回复 6# apang


    你的代码中的md "!temp1!"加1后可以生成文件夹,但生成的文件夹名是-后面的,我想要-前面的文件名的

如A002369255-002.tif   A0254125553-A24526295-002.tif  当然了,最多-时有3个,我想提取出A002369255,  A0254125553为文件夹名,你的那个代码提出来后是002.tif的文件名

TOP

代码中没有md "!temp1!"
只有md "!temp!"
呵呵

TOP

回复 8# apang


   是的啊,可是不加1的话,好像处理起来,没动静啊,也不会生成文件夹呢

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /s /a-d *.tif') do (
  3.     set "temp=%%a"
  4.     set "temp1=!temp:*-=!"
  5.     call set temp=%%temp:-!temp1!=%%
  6.     md "!temp!" 2>nul
  7.     move "%%a" "!temp!" >nul
  8. )
复制代码
将代码保存在tif文件所在位置运行。。。

TOP

回复 10# apang


    不好意思啊,我试了一下,还是不行,是代码运行了以后,还是生成不了文件夹,按你说的放在TIF文件下运行的

TOP

回复 11# wucnu


删掉@echo off,把执行结果贴出来看看。

TOP

本帖最后由 apang 于 2012-3-25 11:31 编辑

回复 11# wucnu

奇怪,试试这样(将代码保存到tif文件所在位置):
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /s /a-d *.tif') do (
  3.     for /f "delims=-" %%b in ("%%a") do (
  4.         md "%%~nb" 2>nul
  5.         move "%%a" "%%~nb\" >nul
  6.     )
  7. )
复制代码
1

评分人数

    • wucnu: 非常感谢啊技术 + 1

TOP

回复 12# find


    按你说的去掉那个以后,显示出来的结果马上就关闭了,贴不上图,那我要怎么办

TOP

回复 13# apang


    太感谢了,这个代码可以啊~~~THANKS

TOP

返回列表