[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
http://www.bathome.net/thread-28415-1-10.html
楼主不长记性
dir 加上参数 /s 以后,列举出来的文件会包含驱动器和路径,新文件名 "!num!%%i" 中已经包含驱动器和路径了,所以报“语法错误”

TOP

回复 4# lzyecho


    2楼DAIC已经给你答案了,你仔细琢磨就会明白
顶楼代码可以这样改:
  1. @echo off
  2. for /f "delims="  %%i in ('dir /ad/b/s^|sort /r') do (
  3.     set /a num+=1
  4.     set "file=%%i" & set "name=%%~nxi"
  5.     setlocal enabledelayedexpansion
  6.     ren "!file!" "!num!!name!"
  7.     endlocal               
  8. )
  9. echo 处理完毕!按任意键结束。
  10. pause>NUL
复制代码

TOP

回复 6# lzyecho


    是不是想要这样?
  1. @echo off
  2. for /f "delims=" %%a in ('dir /ad/b/s^|sort /r') do (
  3.     set "file=%%a" & set "name=%%~nxa"
  4.     setlocal enabledelayedexpansion
  5.     set "f=!file:%~dp0=!"
  6.     for %%b in ("!f:\=" "!") do set /a n+=1
  7.     echo,ren "!file!" "!n!!name!"
  8.     endlocal
  9. )
  10. pause
复制代码

TOP

回复 9# lzyecho


    不明白你说的“每一级目录”是个什么概念
你已经从“修改代码”变成“求代码”了,自己慢慢求去吧

TOP

返回列表