Board logo

标题: [文件操作] [已解决]批处理不同目录下建立文件夹,改文件夹名称为大写的问题 [打印本页]

作者: fulijung    时间: 2015-1-1 13:50     标题: [已解决]bat文件不再该目录中创建与文件同名文件夹的问题

我在d盘的名称为new的文件夹下有一些pat格式的文件,我要在别的地方建一个批处理bat执行文件,要求执行这个文件时在new目录下创建与该目录下所有文件同名的文件夹,
并且要求bat文件不要放在new目录下,因为我不想在每个目录下都放一个bat文件

小弟刚学习批处理但工作需要处理这样的文件,短时间找不到方法,希望大哥大姐们帮忙解决共同进步!!!!
作者: fulijung    时间: 2015-1-1 14:26     标题: [已解决]批处理不同目录下建立文件夹,改文件夹名称为大写的问题

我在d盘的名称为new的文件夹下有一些pat格式的文件,我要在别的地方建一个批处理bat执行文件,要求执行这个文件时在new目录下创建与该目录下所有文件同名的文件夹,
并且要求bat文件不要放在new目录下,因为我不想在每个目录下都放一个bat文件

小弟刚学习批处理但工作需要处理这样的文件,短时间找不到方法,希望大哥大姐们帮忙解决共同进步!!!!
作者: pcl_test    时间: 2015-1-1 14:36

回复 1# fulijung
  1. @echo off
  2. for /f "tokens=1-3 delims=." %%a in ('dir /a-d /b "D:\new\"') do (
  3. md "D:\new\%%a.%%b\"
  4. move "D:\new\%%a.%%b.%%c" "D:\new\%%a.%%b\"
  5. )
  6. pause
复制代码

作者: fulijung    时间: 2015-1-1 14:39

回复 2# pcl_test

谢谢您的回答我试一下效果
作者: fulijung    时间: 2015-1-1 14:43

感谢pcl_test大大的回答,这个论坛真好
作者: fulijung    时间: 2015-1-1 14:50

回复 4# fulijung


    不过怎么把文件夹名字改成大写呢,
作者: 522235677    时间: 2015-1-1 14:58

本帖最后由 522235677 于 2015-1-1 14:59 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. pushd d:\new
  3. for /f "delims=" %%a in ('dir /b') do (
  4. call :str %%~na
  5. md !fn!
  6. move %%a %%~na
  7. )
  8. pause
  9. exit
  10. :str
  11. set fn=%1
  12. set str=a.A b.B c.C d.D e.E f.F g.G h.H i.I j.J k.K l.L m.M n.N o.O p.P q.Q r.R s.S t.T u.U v.V w.W x.X y.Y z.Z
  13. for %%a in (%str%) do (
  14. for /f "tokens=1,2 delims=." %%b in ("%%a") do (
  15. call set fn=%%fn:%%b=%%c%%
  16. )
  17. )
  18. exit /b
复制代码

作者: fulijung    时间: 2015-1-1 15:15

谢谢522235677帮主的回答头像好酷哦,
作者: Batcher    时间: 2015-1-1 15:21

回复 5# fulijung
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /a-d /b "D:\new\"') do (
  4.     set "FolderName=%%~ni"
  5.     for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  6.         set "FolderName=!FolderName:%%a=%%a!"
  7.     )
  8.     if not exist "D:\new\!FolderName!\" (
  9.         md "D:\new\!FolderName!\"
  10.     )
  11.     move /y "D:\new\%%i" "D:\new\!FolderName!\"
  12. )
复制代码

作者: fulijung    时间: 2015-1-1 15:24

谢谢Batcher,太感谢了,这里高手多,太好啦
作者: CrLf    时间: 2015-1-21 23:43

本帖最后由 CrLf 于 2015-1-21 23:44 编辑

来个 BJ 混编:
  1. 1>1/* :
  2. @echo off & setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('dir /a-d /b "D:\new\"^|cscript -nologo -e:jscript "%~0"') do (
  4.     md "D:\new\%%~ni\"
  5.     move /y "D:\new\%%i" "D:\new\%%~ni\"
  6. )) 2>nul
  7. pause & exit /b */
  8. WScript.Echo(WSH.StdIn.ReadAll().toUpperCase())
复制代码

作者: Bat_s    时间: 2015-1-22 16:33

本帖最后由 Bat_s 于 2015-1-22 16:51 编辑

@echo off
for  /f %%i in ('dir /a-d /s /b new') do md %%~dpni & move %%i %%~dpni




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