返回列表 发帖
吞掉:的原因是因为delims=:,你的代码以:为分隔符,故略去,然输出命令行到文件,可用more,但是你提供的代码都不完整,不知你欲何为,最好把完整代码文件打包发上来并说清楚实际要求

TOP

本帖最后由 pcl_test 于 2015-7-6 21:27 编辑

回复 7# Linux9253
测试文件以你3楼的为例
@echo off& setlocal enabledelayedexpansion
(for /f "delims=" %%a in ('findstr /n .* "测试.txt"') do (
set "str=%%a"&set "n="
call :loop
))>"结果.txt"
pause
::判断每行首个:的位置
:loop
for %%b in (0 1 2 3) do if "!str:~%%b,1!" equ ":" (
set /a n=%%b+1
    for %%c in (!n!) do if "!str:~%%c!" equ "rem var1" (
        echo;!str:~%%c!
        ::插入的内容
        echo;set %file1%1= ^&set %file1%2= ^&set %file1%3= ^&set %file1%4=
    ) else echo;!str:~%%c!
goto :eof))COPY

TOP

回复 10# Linux9253

已修改

TOP

本帖最后由 pcl_test 于 2015-7-6 22:03 编辑

回复 17# Linux9253
没发现什么变量延迟问题,不知你说的什么
    for %%c in (!n!) do if "!str:~%%c!" equ "rem var1" (
        echo;!str:~%%c!
        echo;测试1
    ) else if "!str:~%%c!" equ "rem var2" (
        echo;!str:~%%c!
        echo;测试2
    ) else if "!str:~%%c!" equ "rem var3" (
        echo;!str:~%%c!
        echo;测试3
    ) else echo;!str:~%%c!COPY

TOP

本帖最后由 pcl_test 于 2015-7-7 00:48 编辑

回复 19# Linux9253
1>1/* :
@echo off
dir /b "测试.txt"|cscript -nologo -e:jscript "%~f0"
echo 完成!
ping -n 2 0 >nul&exit/b
*/
function toFile(file){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.OpenTextFile(file,1,false);
var f2 = fso.CreateTextFile("$NEW_"+file,1);
var txt="";
while(!f1.AtEndOfStream){
var str=f1.ReadLine();
if (str=="rem var1"){
    txt=str+"\r\n"+"测试内容1";
}else if (str=="rem var2"){
    txt=str+"\r\n"+"测试内容2";
}else if (str=="rem var3"){
    txt=str+"\r\n"+"测试内容3";
}else{txt=str;}
f2.WriteLine(txt);
}
f1.Close();
f2.Close();
}
while(!WScript.StdIn.AtEndOfStream){
var f=WScript.StdIn.ReadLine();
toFile(f);
}COPY
1

评分人数

TOP

回复 23# Linux9253
按B文件原样输出,所以变量没有变成值,需直接用值,或在B文件中对变量赋值
if (str=="rem var1"){
    txt=str+"\r\n"+
        "第一行\r\n"+
        "第二行\r\n"+
        "第三行";
}else if (str=="rem var2"){
    txt=str+"\r\n"+
        "第一行\r\n"+
        "第二行\r\n"+
        "第三行";
}else if (str=="rem var3"){
    txt=str+"\r\n"+
        "第一行\r\n"+
        "第二行\r\n"+
        "第三行";
}else{txt=str;}COPY

TOP

返回列表