[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 如何指定一个目录来批量修改文件名

现有一段代码,这个代码只能在当前目录下修改文件名,我想在运行BAT的时候后面加个文件目录的参数,正对这个目录下的文件进行修改这个代码如何修改下呢?


@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b *.xls') do (
    set name=%%~ni
    if "!name:-=!" neq "!name!" (
       set "name=!name:-=!"
       ren "%%i" !name:~,-6!%%~xi
    )
)

这样???
  1. @echo off&setlocal enabledelayedexpansion
  2. set "folder=%~1"
  3. if "%folder%"=="" (
  4.    set /p folder=请输入目录名:
  5. )
  6. for /f "delims=" %%i in ('dir /b "%folder%\*.xls"') do (
  7.     set name=%%~ni
  8.     if "!name:-=!" neq "!name!" (
  9.        set "name=!name:-=!"
  10.        ren "%%i" !name:~,-6!%%~xi
  11.     )
  12. )
复制代码

TOP

回复 1楼 的帖子

参数是要显示指定的吧,那样要输入路径也很麻烦,都不如直接将你自己的bat文件复制到你要改名的文件夹下运行呢。
Still with wax

TOP

回复 1楼 的帖子

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p s=please input the path:
  3. call :loop %p%
  4. pause>nul&goto :eof
  5. :loop
  6. for /f "delims=" %%i in ('dir "%1" /b *.xls') do (
  7.     set name=%%~ni
  8.     if "!name:-=!" neq "!name!" (
  9.        set "name=!name:-=!"
  10.        ren "%%i" !name:~,-6!%%~xi
  11.     )
  12. )
复制代码
Still with wax

TOP

返回列表