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

[文件操作] 批处理如何获取当前目录下所有文件名称并新建相同的目录?

[复制链接]
发表于 2021-8-15 10:23:48 | 显示全部楼层 |阅读模式
请问如何获取当前目录下所有文件名称(不含后缀),并在当前目录下用获得的文件名新建相同的目录,谢谢
发表于 2021-8-15 10:31:39 | 显示全部楼层
  1. for /f %%i in ('dir /b') do (md %%i)
复制代码
 楼主| 发表于 2021-8-15 10:41:11 | 显示全部楼层
回复 2# cmd1152


    我试了一下,没有反应啊,麻烦再给看下,谢谢,
发表于 2021-8-15 10:52:55 | 显示全部楼层

  1. for /f %%i in ('dir /b') do (md "%%~ni")
复制代码
 楼主| 发表于 2021-8-15 11:03:38 | 显示全部楼层
回复 4# newswan


    太感谢了,成功了,请问如何把批处理文件自身这个文件名建的文件夹删除了,?
发表于 2021-8-15 11:06:41 | 显示全部楼层

  1. for /f %%i in ('dir /b') do (
  2.     if "%%~ni" NEQ "%~n0" md "%%~ni"
  3. )
复制代码
 楼主| 发表于 2021-8-15 11:23:07 | 显示全部楼层
回复 6# newswan


    大神,麻烦再问一下,如果按照源文件夹下的文件名的前N个字符(4个汉字6个数字)新建目录,再将这个目录下的文件按照前N个字符(4个汉字6个数字)分别拷贝到相应的目录下,该怎么做啊,谢谢!(源目录下的文件是“项目名称”+“年份”+“月份” 的形式命名的,我想把相同项目、相同年份的文件放到同一个文件夹内,)
发表于 2021-8-15 11:38:18 | 显示全部楼层

  1. setlocal enableDelayedExpansion

  2. for /f %%i in ('dir /b') do (
  3.     if "%%~ni" NEQ "%~n0" (
  4.         set n=%%~ni
  5.         set n=!n:~0,10!
  6.         if not exist "!n!" mk !n!
  7.         move "%%i" "!n!"
  8.     )
  9. )

复制代码
发表于 2021-8-15 11:39:05 | 显示全部楼层
回复 5# COSByVal
  1. for /f %%i in ('dir /b') do (md %%i)
  2. rd %~0
复制代码
 楼主| 发表于 2021-8-15 14:39:19 | 显示全部楼层
回复 9# cmd1152


    for /f %%i in ('dir /b') do (
    if "%%~ni" NEQ "%~n0" (
        set n=%%~ni
        set n=!n:~0,10!
        if not exist "!n!" mk !n!
        move "%%i" "!n!"
    )
)
for /f %%i in ('dir /b') do (md %%i)
rd %~0
                            这两段我放在一个bat文件中,运行后,目录建出来了,但是文件没有拷贝进去,麻烦老师再给看一下,谢谢!
发表于 2021-8-15 20:59:06 | 显示全部楼层
回复 10# COSByVal


请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
发表于 2021-8-16 08:14:27 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-8-16 08:26 编辑

回复 10# COSByVal
1.dir/b不仅会查找文件,还会显示文件夹,所以最好增加/a-d参数,这样就只会显示文件。
2.楼主最好提供文件扩展名,会省去不必要的判断语句。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /a-d *pdf *.jpg') do (
  4.     set "str=%%a"
  5.     set "str=!str:~,10!"
  6.     if not exist !str! md !str!
  7.     move "%%a" "!str!"
  8. )
  9. pause
复制代码
 楼主| 发表于 2021-8-16 08:19:55 | 显示全部楼层
回复 12# qixiaobin0715


        扩展名是.pdf或者.jpg,谢谢!
 楼主| 发表于 2021-8-16 08:23:33 | 显示全部楼层
回复 12# qixiaobin0715


    目录建了,外面的文件也删除了,但是新建的文件夹内是空的,
 楼主| 发表于 2021-8-16 09:52:29 | 显示全部楼层
回复 12# qixiaobin0715


    弄好了,大神,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 22:20 , Processed in 0.025424 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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