Board logo

标题: [文本处理] [已解决]批处理怎么把文件夹名称中[]号内的内容去除掉? [打印本页]

作者: itunesis    时间: 2020-4-28 23:35     标题: [已解决]批处理怎么把文件夹名称中[]号内的内容去除掉?

把文件夹名称中[]里面的内容和[]这个括号一起去除掉

比如把文件夹名[cctv]010-c重命名为010-c

请问大佬们要怎么写??
作者: ivor    时间: 2020-4-29 08:48

  1. powershell "dir | % {$_.MoveTo(($_.Name -replace '\[.*?\]',''))}"
复制代码

作者: itunesis    时间: 2020-4-29 11:29

回复 2# ivor


    老哥有没有用bat能实现的代码?
作者: went    时间: 2020-4-29 12:28

folder是主文件夹
  1. @echo off
  2. set "folder=C:\Users\lenovo\Desktop\1"
  3. for /d %%i in ("%folder%\[*]*") do (
  4. set "dir=%%~ni"
  5. call rename "%%i" "%%dir:*]=%%"
  6. )
  7. pause&exit
复制代码

作者: itunesis    时间: 2020-4-29 12:40

回复 4# went


    你好,刚刚试了,这个还需要手动修改文件路径才能运行的是吗?
能不能改成是把这个bat文件放在哪个目录就自动运行应用在当前目录下文件夹的?
作者: went    时间: 2020-4-29 12:44

回复 5# itunesis
修改当前文件夹里的目录
  1. @echo off
  2. for /d %%i in ("[*]*") do (
  3. set "dir=%%~ni"
  4. call rename "%%i" "%%dir:*]=%%"
  5. )
  6. pause&exit
复制代码

作者: itunesis    时间: 2020-4-29 13:07

本帖最后由 itunesis 于 2020-4-29 13:20 编辑

回复 6# went


    谢谢,运行成功

现在发现个bug,能不能再看看。
作者: itunesis    时间: 2020-4-29 13:20

回复 6# went

你好,现在发现有个问题。
当[]括号内有英文句号.的时候,就会把句号.后面的内容全部清除掉了
比如[cct.v]010-cc 运行后名字变成了[cct
请问是什么原因?
作者: went    时间: 2020-4-29 13:48

回复 8# itunesis


第三行改为
  1. set "dir=%%~nxi"
复制代码
符号.被看成拓展名了
这段代码只支持以
  • 开头的文件夹改名
    作者: went    时间: 2020-4-29 13:49

    回复 9# went

    打个
    1. [*]
    复制代码
    怎么变成
  • 这个符号了
    作者: itunesis    时间: 2020-4-29 13:58

    回复 9# went


        非常感谢,这次的没有这个问题了




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