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

以2部分为例:
  1. :2
  2. for /f "delims=" %%i in ('dir /a-d /b *.*') do (if not "%%i"==%0 ren "%%i" "%str1%%%~ni%str2%%%~xi")
  3. goto 3
复制代码
1,在if中推荐引号在==前后对应使用,最好写成:if not "%%~i"=="%~0"
2,dir /a-d /b *.*出来的不带绝对路径,%0带路径,如果你弄不明白为了统一可以同时扩展他们都带路径
3,if比较字符串时推荐使用/i
if 写成这样就比较保险 if /i not "%%~fi"=="%~f0"

ps:顺便说一下,如果使用call,慎重使用%0
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

本帖最后由 hanyeguxing 于 2011-4-15 11:32 编辑
  1. for /F "delims=" %%i in ('dir /b') do (set a="%%~nxi"&echo;!a!)
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

本帖最后由 hanyeguxing 于 2011-4-15 11:52 编辑

6# hrhktkbzyy


你原来的代码中第二行不是有 setlocal enabledelayedexpansion 吗?没有就加上
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /F "delims=" %%i in ('dir /b') do (set a="%%~nxi"&echo;!a!)
  4. pause
复制代码
setlocal enabledelayedexpansion
作用1,使用延迟的变量
作用2,开始变量本地化
关于变量延迟的问题,本论坛搜索“变量 延迟”,例如http://bbs.bathome.net/thread-3083-1-1.html
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表