我想写一个批处理文件,它能把一个目录下的所有xlsx文件的文件名前置一直BEIJING_,比如以前是aa.xlsx,bb.xlsx, 然后运行这个批处理后,文件名变为BEIJING_aa.xlsx,BEIJING_bb.xlsx.
我看网上的文章然后写成如下:
@echo on 
SET str1=BEIJING 
for %%f in (*.xlsx) 
do (ren %%f %str1%_%%f)运行的时候告诉我语法错误。。 谁能告诉我怎么写啊,多谢了!

解决方案 »

  1.   

    for 和 do ( 要写在一行里吧,象你这里无须在 ren 前后加括号又分行,直接一行足矣。
    另外,ren 命令里的两文件名,尽量要加上两边的引号以应对可能出现的长文件名。
      

  2.   

    @echo off&setlocal EnableDelayedExpansion
    for /f "delims=" %%i in ('dir /b *.xlsx') do (
    if not "%%~ni"=="%~n0" (
    ren "%%i" "BEIJING_%%i"
    ))试试是否可行呢?
      

  3.   

    学习下,一直不懂bat的语法。
    批量重命名可用total commander