无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5664|回复: 12
打印 上一主题 下一主题

[求助] 求助一个批处理问题,不知能否实现,来高手!

[复制链接]
跳转到指定楼层
1#
发表于 2017-5-21 19:15:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个文件夹,文件夹里有很多ini文件
里面格式如下:
[route]
xxxxxxxx=xxxxxxxx
xxxxxxxx=xxxxxxxx
rishing=666
xxxxxxxx=xxxxxxxx
xxxxxxxx=xxxxxxxx

rishing这个参数每个ini里都是不一样的,有的=0 有的=几百或者上千
那么我如何通过bat把同一文件夹目录里所有ini的rishing这个参数全部修改=0

只修改这一行,其他不变,失败很多次了,求高手帮忙!!
2#
发表于 2017-5-21 19:45:08 来自手机 | 只看该作者
rishing=666

这个值是不是都是数字?
是不是独占一行,该行还有没有其它文字?
文本内没还有没有其它rishing=
文本内由于特殊符号?
回复

使用道具 举报

3#
发表于 2017-5-21 20:09:10 | 只看该作者
用inifile吧
inifile.7z (7.84 KB, 下载次数: 9)
回复

使用道具 举报

4#
发表于 2017-5-21 20:37:26 | 只看该作者
本帖最后由 tools241 于 2017-5-22 09:04 编辑

如何利用 仿unix/linux命令 sed 一次替换文字中的 "某些相似性的字串" ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=383106

for %%f in (*.ini) do  (
sed.exe -e "s/
rishing=[0-9][0-9]*/rishing=0/" < %%f  > tmp.txt
copy /Y tmp.txt %%f  >nul
)
del  /Q  tmp.txt

______________________________________________________

6/1起本人可能无法提供百度载点, 请有需求者尽快下载或保存.

PE网盘1: http://pan.baidu.com/s/1eRc6FzO
工具类网夹1: http://pan.baidu.com/s/1mgEBMkS

PE网盘2
: https://sites.google.com/site/toolsdnpe/pe
工具类网夹2: https://sites.google.com/site/tools241/tools



5/22更新 效率极致! 简体/繁体 10PE16199x64 10PE16193x86 10PE15063x64 影音上网版 (6/1起可能不提供百度载點) ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=385866

回复

使用道具 举报

5#
 楼主| 发表于 2017-5-22 14:14:23 | 只看该作者
nttwqz 发表于 2017-5-21 19:45
rishing=666

这个值是不是都是数字?

全部都是数字,没有其他字符

点评

最近太忙,不好意思。建议用其它命令替代for /r  详情 回复 发表于 2017-5-24 13:38
回复

使用道具 举报

6#
发表于 2017-5-23 20:34:56 | 只看该作者
是 纯 dos 还是  win_CMD 下?

可以考虑用 awk
回复

使用道具 举报

7#
发表于 2017-5-24 13:38:13 | 只看该作者
qianwei 发表于 2017-5-22 14:14
全部都是数字,没有其他字符

  1. @echo off
  2. pushd %~dp0
  3. rem 切勿放错目录!
  4. pause
  5. for /r %%a in (*.ini) do (
  6.         for /f "delims=" %%b in ('type "%%a" ^| findstr /n .*') do (
  7.                 setlocal enabledelayedexpansion
  8.                 set "var=%%b"
  9.                 set "var=!var:*:=!"
  10.                 if /i "!var:~0,8!"=="rishing=" (echo;rishing=0) else echo;!var!
  11.                 endlocal
  12.         )>>"%%~dpnxa.bak"
  13.         move /y "%%~dpnxa.bak" "%%a"
  14. )
  15. pause
复制代码


最近太忙,不好意思。建议用其它命令替代for /r,脚本有局限性,单行太长不行!

点评

我对CMD掌握得很潦草,只知道大概,请N大勘验我的这个批处理。不慎感激。  详情 回复 发表于 2017-5-24 16:39
学习了!虽然我没测试,但咋一看,感觉很轻盈,应该也奏效。  发表于 2017-5-24 16:22
回复

使用道具 举报

8#
发表于 2017-5-24 16:39:51 | 只看该作者
本帖最后由 chiannet 于 2017-5-24 16:43 编辑
nttwqz 发表于 2017-5-24 13:38
最近太忙,不好意思。建议用其它命令替代for /r,脚本有局限性,单行太长不行!



我对CMD掌握得很潦草,只知道大概,请N大勘验我的这个批处理。不胜感激。


SETUPPCIDVI.7z

1.73 KB, 下载次数: 4

点评

你说的我好像系统学过批处理一样。。。 在不给出相关文件,不执行的情况下,看不出来什么毛病,其实,只要执行结果达到你的要求,不就行了吗,没啥好勘验的,除了下面个人觉得可以写的更简单点。 FOR %%I IN (  详情 回复 发表于 2017-5-24 23:38
回复

使用道具 举报

9#
发表于 2017-5-24 23:38:38 | 只看该作者
chiannet 发表于 2017-5-24 16:39
我对CMD掌握得很潦草,只知道大概,请N大勘验我的这个批处理。不胜感激。

你说的我好像系统学过批处理一样。。。

在不给出相关文件,不执行的情况下,看不出来什么毛病,其实,只要执行结果达到你的要求,不就行了吗,没啥好勘验的,除了下面个人觉得可以写的更简单点。

FOR %%I IN (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) DO SET OKHWID%%I=NU
可以简写:FOR /L %%I IN (1 1 16) DO SET OKHWID%%I=NU
set /a N=!N!+1可以简写:set /a N+=1(纯习惯问题)

下面这句
FOR /F "TOKENS=3 DELIMS=:" %%Q IN ('FIND /I /C "SUCCESS:Install completed" "%WINDIR%\DPINST.LOG"') DO (IF %%Q GTR 0 SET EF=)
貌似仅仅是为了确定DPINST.LOG中是否有SUCCESS:Install completed一个或更多,然后SET EF=
应该可以不用for,用 && 或 || 实现,你后面也用了,例如
FIND /I /C "SUCCESS:Install completed" "%WINDIR%\DPINST.LOG" >nul 2>nul && SET EF=
用for不知道有没有其它原因,好几处都是用了for。

IF !EF!==未 (FOR。。。。这两句判断条件相同,貌似可以写一块,稍作整理。

仅从代码本身,未从执行结果角度分析,正确与否不得而知。

点评

此批处理逻辑框架原本应该基本成型,也没大毛病。就是希望打磨一下。 你的好几处建议很好,谢谢。使批处理获得好几处精炼。  详情 回复 发表于 2017-5-25 06:02
回复

使用道具 举报

10#
发表于 2017-5-25 06:02:35 | 只看该作者
本帖最后由 chiannet 于 2017-5-25 09:29 编辑
nttwqz 发表于 2017-5-24 23:38
你说的我好像系统学过批处理一样。。。

在不给出相关文件,不执行的情况下,看不出来什么毛病,其实, ...

此批处理逻辑框架原本应该基本成型,也没大毛病。就是希望打磨一下。

你的好几处建议很好,谢谢。使批处理获得好几处精炼。


修改后的批处理如下: SETUPPCIDVI.7z (1.67 KB, 下载次数: 2)

点评

看来改的差不多了,如果这是给别人用的,建议加入帮助,使其更像一个工具。 if "%1"=="/?" goto help if "%1"=="" goto help ......  详情 回复 发表于 2017-5-25 13:12
回复

使用道具 举报

11#
发表于 2017-5-25 13:12:57 来自手机 | 只看该作者
chiannet 发表于 2017-5-25 06:02
此批处理逻辑框架原本应该基本成型,也没大毛病。就是希望打磨一下。

你的好几处建议很好,谢谢。使批 ...

看来改的差不多了,如果这是给别人用的,建议加入帮助,使其更像一个工具。

if "%1"=="/?" goto help
if "%1"=="" goto help
......
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 17:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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