[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
@set @n=0//&dir /a-d/b/s tiger.bat|cscript.exe -nologo -e:jscript "%~f0" &pause&exit/b
while (!WSH.StdIn.AtEndOfStream) {
    file = WSH.StdIn.ReadLine();
    fso = new ActiveXObject("Scripting.FileSystemObject");
    text = fso.OpenTextFile(file,1).ReadAll();
    text = text.replace(/^ *set tiger[^\r\n]+/m, "set tiger=3m arm=1m");
    fso.OpenTextFile(file,2).Write(text);
    fso = null;
}

我想把要修改的文件名称 和修改前后的值设置为参数 传入,该怎么写,大神教下?
tiger.bat  
set tiger
set tiger=3m arm=1m    这3个

TOP

  1. @set @n=0//&dir /a-d/b/s tiger.bat|cscript.exe -nologo -e:jscript "%~f0" "tiger.bat" "set tiger" "set tiger=3m arm=1m" &pause&exit/b
复制代码
然后 里面 看下哦
  1. var file = WScript.Arguments(0);
  2. var str1 = WScript.Arguments(1);
  3. var str2 = WScript.Arguments(2);
  4. WScript.Echo(file + " " + str1 + " " + str2);
复制代码

TOP

本帖最后由 apang 于 2013-11-11 18:32 编辑

把下面代码保存为test.bat
  1. @set @n=0//&dir /a-d/b/s "%~1"|cscript -nologo -e:jscript "%~f0" "%~2" "%~3" &pause&exit/b
  2. a = WScript.Arguments(0);
  3. b = WScript.Arguments(1);
  4. while (!WSH.StdIn.AtEndOfStream) {
  5.     file = WSH.StdIn.ReadLine();
  6.     fso = new ActiveXObject("Scripting.FileSystemObject");
  7.     re = new RegExp("^( *)" + a + "[^\\r\\n]+","im");
  8.     text = fso.OpenTextFile(file,1).ReadAll();
  9.     text = text.replace(re, "$1" + b);
  10.     fso.OpenTextFile(file,2).Write(text);
  11.     fso = null;
  12.     re = null;
  13. }
复制代码
然后:
  1. test.bat "tiger.bat" "set tiger" "set tiger=3m arm=1m"
复制代码

TOP

返回列表