无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3285|回复: 4
打印 上一主题 下一主题

大伙帮忙看这个 批处理 问题出在哪里【FOR 和SET 联合应用】

[复制链接]
跳转到指定楼层
1#
发表于 2011-2-22 10:54:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem 下面一行是原文件名中要替换的字符串
  4. set renname1=_DownG.com
  5. rem 下面是新文件名的字符串,要删除1,则留空
  6. set renname2=
  7. for /r . %%a in (*_DownG.com*) do (
  8. set hcy=%%a
  9. e:\tools\winrar.exe d "%%a" 下载站*.htm -r
  10. echo !hcy!
  11. ren "%%~a" "!hcy:%renname1%=%renname2%!")
  12. pause
复制代码
执行到 ren "%%~a" "!hcy:%renname1%=%renname2%!")
会语法错误~~~我那个找不出来。

下面这个是我现在正在用的,只能对当前目录进行操作。我想对子目录也操作,于是有了上面的代码。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem 下面一行是原文件名中要替换的字符串
  4. set renname1=_DownG.com
  5. rem 下面是新文件名的字符串,要删除1,则留空
  6. set renname2=
  7. for /f "delims=" %%a in ('dir /b *_DownG.com*') do (
  8. set hcy=%%a
  9. e:\tools\winrar.exe d "%%a" 下载站*.htm -r
  10. echo !hcy!
  11. ren "%%~a" "!hcy:%renname1%=%renname2%!")
  12. pause
复制代码
测试的时候要有 形如"新建 WinRAR 压缩_DownG.com文件.rar"的文件,(文件名有空格,无空格都要能运行这个批处理)。
希望高手帮我看看第一段代码的问题出在哪里。我估计是setlocal enabledelayedexpansion的问题,可是我不知道怎么修改。

[ 本帖最后由 hdzz 于 2011-2-22 14:41 编辑 ]
2#
发表于 2011-2-22 14:24:21 | 只看该作者
执行到 ren "%%~a" "!hcy:%renname1%=%renname2%!")
会语法错误~~~我那个找不出来。
只能对当前目录进行操作。我想对子目录也操作


setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%a in ('dir /s /b *_DownG.com*') do (
     set Sour=%%a
     set Dst=%%~nxa
     "e:\tools\winrar.exe" d "%%a" "下载站*.htm" -r
     set Dst=!Dst:_DownG.com=!"
     ren "!Sour!" "!Dst!"
                         )
pause
回复

使用道具 举报

3#
 楼主| 发表于 2011-2-22 14:41:25 | 只看该作者
分离路径、文件名~~~这一步很重要。
之前我忘记了。以为 这个 %%a 还是跟 只在当前目录运行的那个一样。
不知道该怎么感谢你了。
set Dst=!Dst:_DownG.com=!"
     ren "!Sour!" "!Dst!"
这样写 看的也明白。
当时我也想这么写的,可是没写出来~~~~~再次感谢。
回复

使用道具 举报

4#
发表于 2011-2-22 14:47:44 | 只看该作者
不分离路径就用MOVE

setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%a in ('dir /s /b *_DownG.com*') do (
     set Sour=%%a
     set renname=_DownG.com
     "e:\tools\winrar.exe" d "%%a" "下载站*.htm" -r
     set Dst=!Sour:%renname%=!"
     Move "!Sour!" "!Dst!"
                                  )
回复

使用道具 举报

5#
 楼主| 发表于 2011-2-22 15:11:20 | 只看该作者
刚刚仔细试验了下。
比较好用。
现在可以说是完美的解决了这个问题了。
文件夹也可以操作(其中的winrar一行不会对文件夹操作)
有空格照样可以。

呵呵。高兴啊,多谢超版
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-23 20:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表