找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 69683|回复: 19

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

[复制链接]
发表于 2012-3-23 22:18:38 | 显示全部楼层 |阅读模式
请教大侠们....
  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前的文件名的文件夹,如果我想建立-的前面的文件夹名,要怎么写才好呢,也就是说-后面的不管出现是什么数字时

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-3-23 22:42:27 | 显示全部楼层
文件名有几个“-”,打算从哪一个切分呢
 楼主| 发表于 2012-3-23 22:48:37 | 显示全部楼层
文件有上千个,如*-*.tif,想从-的第一个开始切分,那要怎么做呢
发表于 2012-3-23 23:22:40 | 显示全部楼层
  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. )
复制代码
 楼主| 发表于 2012-3-23 23:31:30 | 显示全部楼层
回复 4# apang


    不行呢,晕,了..
发表于 2012-3-24 00:13:36 | 显示全部楼层
不行是什么状况?
 楼主| 发表于 2012-3-24 09:56:14 | 显示全部楼层
回复 6# apang


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

如A002369255-002.tif   A0254125553-A24526295-002.tif  当然了,最多-时有3个,我想提取出A002369255,  A0254125553为文件夹名,你的那个代码提出来后是002.tif的文件名
发表于 2012-3-24 11:40:15 | 显示全部楼层
代码中没有md "!temp1!"
只有md "!temp!"
呵呵
 楼主| 发表于 2012-3-24 11:51:03 | 显示全部楼层
回复 8# apang


   是的啊,可是不加1的话,好像处理起来,没动静啊,也不会生成文件夹呢
发表于 2012-3-24 11:59:12 | 显示全部楼层
  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文件所在位置运行。。。
 楼主| 发表于 2012-3-24 23:39:15 | 显示全部楼层
回复 10# apang


    不好意思啊,我试了一下,还是不行,是代码运行了以后,还是生成不了文件夹,按你说的放在TIF文件下运行的
发表于 2012-3-25 10:16:38 | 显示全部楼层
回复 11# wucnu


删掉@echo off,把执行结果贴出来看看。
发表于 2012-3-25 11:26:56 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
wucnu + 1 非常感谢啊

查看全部评分

 楼主| 发表于 2012-3-25 11:30:51 | 显示全部楼层
回复 12# find


    按你说的去掉那个以后,显示出来的结果马上就关闭了,贴不上图,那我要怎么办
 楼主| 发表于 2012-3-25 11:33:19 | 显示全部楼层
回复 13# apang


    太感谢了,这个代码可以啊~~~THANKS
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 22:27 , Processed in 0.021095 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表