Board logo

标题: [文本处理] 求大神帮忙看下修改文件夹名称的批处理哪里出了问题?谢谢 [打印本页]

作者: 断桥    时间: 2018-8-8 15:45     标题: 求大神帮忙看下修改文件夹名称的批处理哪里出了问题?谢谢

代码修改了以后运行报错?怎么办大神
比如:我的文件夹是以下这样的,我只需要删除01:00:00这部分就好 (是修改文件夹的,不是任何的其他问价)
新建文件夹 - 2018-08-08 01:00:00
新建文件夹 - 2018-08-08 01:00:01
新建文件夹 - 2018-08-08 01:00:02
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%j in (*.*) do (
  4. set filename=%%~nj
  5. set filename=!filename:新建文件夹 - 2018-08-08=_!
  6. set filename=!filename:"h:mm:ss" =!
  7. if not "!filename!"=="%%~nj" ren "%%j" "!filename!%%~xj"
  8. )
复制代码

作者: xczxczxcz    时间: 2018-8-10 09:14

偶不是大神,你把 01:后面的都去掉后,你的文件夹很多都变成同名了,这样会失败。若只论去掉后面的还是很容易的。
作者: xczxczxcz    时间: 2018-8-10 09:17

本帖最后由 xczxczxcz 于 2018-8-10 09:21 编辑

修改文件夹不建议用 ren  建议用 md 命令.

处理文件夹  建议把这个
for %%j in (*.*) do (    改成类似 for /f "delims=" %%j in ('dir/ad/b/s "xxxx"') do (
作者: Batcher    时间: 2018-8-10 14:07

去掉那部分之后,三个文件夹都叫做:新建文件夹 - 2018-08-08
文件夹重名了,系统不允许的。
作者: 断桥    时间: 2018-8-12 20:17

回复 2# xczxczxcz
比如:我的文件夹是以下这样的,我只需要删除01:00:00这部分就好 (是修改文件夹的,不是任何的其他问价)
没有表述明白:
删除后面的 01:00:00 就好了。
新建文件夹1 - 2018-08-08 01:00:00
新建文件夹2 - 2018-08-08 01:00:01
新建文件夹3 - 2018-08-08 01:00:02
谢谢大神。
作者: holley    时间: 2018-8-15 13:20

本帖最后由 holley 于 2018-8-15 13:37 编辑

回复 5# 断桥

我也是初学者
你看这样行不行?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%a in (*) do (
  4.    for /f "tokens=1-3 delims= " %%b in ("%%a") do (
  5.       set "a1=%%b"
  6.       set "a2=%%c"
  7.       set "a3=%%d"
  8.       ren "%%a" "!a1!!a2!!a3!"
  9.    )
  10. )
复制代码
好像空格被自动咔嚓了,增加空格的补充
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%a in (*) do (
  4.    for /f "tokens=1-3 delims= " %%b in ("%%a") do (
  5.       set "var= "
  6.       set "a1=%%b"
  7.       set "a2=%%c"
  8.       set "a3=%%d"
  9.       ren "%%a" "!a1!!var!!a2!!var!!a3!"
  10.    )
  11. )
复制代码





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