全球主机交流论坛

标题: 有没有大佬帮我修复一下这个BAT脚本啊? [打印本页]

作者: sotan    时间: 2019-1-9 16:35
标题: 有没有大佬帮我修复一下这个BAT脚本啊?
本帖最后由 sotan 于 2019-1-9 18:21 编辑

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /o-n "*.wav"') do (
  4. set /a n+=1
  5. set "n=0!n!"&set "n=!n:~-2!"
  6. ren "%%~i" "!n! %%~nxi")
  7. for /f "delims=" %%a in ('dir /b/a-d/oN *.*') do echo %%a >>123.txt
  8. pause
复制代码


作用是想把歌曲,自动在前面编个序号,从01开始这样,后面跟个空格 然后再是原文件名,然后输出到一个txt内,
现在这段代码序号会重复,不知道为啥.
输出的结果只会01~08 然后又重复开始了!
这个代码是我百度了半天汇总出来的,也不知道哪个地方有问题
作者: zephyr    时间: 2019-1-9 16:44
  1. set "n=!n!"&set "n=!n:~-2!"
复制代码
去掉0试试
作者: sotan    时间: 2019-1-9 16:52
zephyr 发表于 2019-1-9 16:44
去掉0试试

去掉0 的确会正常从1开始计数而且是正常的,那么想要10以下的文件头以0开始能办吗?
作者: why?    时间: 2019-1-9 16:53
编号我好像有个软件可以 但是 是原文件名,然后输出到一个txt内 这个就做不到了
作者: YYY666    时间: 2019-1-9 16:55
软件 拖把更名器  自己搜一个
作者: zephyr    时间: 2019-1-9 16:58
sotan 发表于 2019-1-9 16:52
去掉0 的确会正常从1开始计数而且是正常的,那么想要10以下的文件头以0开始能办吗? ...
  1. set "n=!n!"&set "n=!n:~-2!"
  2. echo "%%~i" "0!n! %%~nxi")
复制代码
前面都加0
作者: sotan    时间: 2019-1-9 17:13
zephyr 发表于 2019-1-9 16:58
前面都加0

大佬,批处理里面是没有IF这种写法吗?
  1. if n > 10(ren "%%~i" "0!n! %%~nxi")else(ren "%%~i" "!n! %%~nxi")
复制代码

这样子写了之后 批处理就直接一闪而过了
作者: 今晚我是你的    时间: 2019-1-9 17:27
水淼文件批量处理可以解决
作者: 灰姑娘    时间: 2019-1-9 17:29
好像有款叫什么 菲菲宝贝 的绿色软件支持 windows 批量改名。
作者: zephyr    时间: 2019-1-9 17:48
本帖最后由 zephyr 于 2019-1-9 17:51 编辑
sotan 发表于 2019-1-9 17:13
大佬,批处理里面是没有IF这种写法吗?

这样子写了之后 批处理就直接一闪而过了 ...

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /s /b /o-n "*.txt"') do (
  4. set /a n+=1
  5. set "n=!n!"
  6. if !n!  LEQ 9 (
  7. echo "%%~i" "0!n! %%~nxi"
  8. ) else (
  9. echo "%%~i" "!n! %%~nxi"
  10. )
  11. )
复制代码
if这样用
作者: sotan    时间: 2019-1-9 18:21
zephyr 发表于 2019-1-9 17:48
if这样用

十分感谢大佬!!!
作者: 逸笙    时间: 2019-1-9 19:15
有问题的话,每次把变量echo出来呀,%%i跟!n!都打印出来。推荐数字累加,用另一个变量记数字前加0,还有%%i我喜欢放另一个变量里来操作。
作者: jasminnoir    时间: 2019-1-9 20:06
现在改用powershell,方便多了,建议尽早过渡...




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4