.bat文件-将新变量写入.msl(.txt)文件

雅各布·多尔西

好的,所以这是我先前提到的另一个问题的后续措施我的代码找到了上一个工作日,然后遍历3到9之间的所有小时/分钟组合。

代码会将这个新变量输入到.msl(对于我们的文档直接服务器而言,基本上是.txt文件)。

我需要代码将找到的变量写入.msl文件并运行该文件。

这是我到目前为止的内容:

@ECHO off

setlocal enabledelayedexpansion
echo wd = Weekday^(Date^(^), vbSunday^)>yesterday.vbs
echo if wd ^< 3 then dif = -1 - wd else dif = -1 >>yesterday.vbs
echo d = dateadd^("d", dif, Date^(^)^)>>yesterday.vbs
echo wscript.echo DatePart^("yyyy",d^) ^& " " ^& DatePart^("m", d^) ^& " " ^& DatePart^("d", d^) >>yesterday.vbs
for /f "tokens=1-3" %%I in ('cscript /nologo yesterday.vbs') do (
    set year=%%I
    if %%J leq 9 (set month=0%%J) else set month=%%J
    if %%K leq 9 (set day=0%%K) else set day=%%K
)
del yesterday.vbs
set YYYY=%year:~-4%
set MM=%month:~-2%
set DD=%day:~-2%

set prevbusday=%YYYY%%MM%%DD%

echo %prevbusday%

pause

For /L %%G IN (3,1,9) DO (
    For /L %%H IN (0,1,59) DO (
        set "h=0%%H"
        ECHO %prevbusday%0%%G!h:~-2!
        set "id=%prevbusday%0%%G!h:~-2!"
        break>test.msl
        (echo OPENVIEW SERVERID 'Mobius Server     ' REPORTID 'TrialReports ' VERSIONID ' **id** 'SECTIONID ' 0000-000 Name of Report' PAGE 1)> test.msl
        (echo EXPORT ASCII FILE 'C:\New folder\check.rpt' CURSEC GROUP '') >> test.msl

        (echo CLOSE) >> test.msl
        rem **Here I will add the code to call the newly minted 'test.msl' - but
        rem   I'll get to that later** 

    )
)

pause

哪里说VERSIONID ' id是我需要在哪里注入变量。我试图用引号和没有引号的方式做到这一点,并且不知道如何正确地注入它。

红色的

Windows变量是内联求值的。您所需要做的就是替换**id**!id!

就像我觉得自己做了有用的事情一样,我也会在上一个工作日的计算中为您提供帮助。您可以混合代码,并使用JScriptDate()对象消除回显到临时.vbs脚本的必要性。我也将重定向移动到test.msl了一个括号代码块,以稍微清理一下代码。如果您的MSL处理程序允许,则可以将所有OPENVIEW...EXPORT...CLOSE转储到文件中,并且只运行一次处理程序,这可能会提高效率。有关示例,请参见此答案的修订版2

我认为这可以满足您的需求。用.bat扩展名保存。

@if (@CodeSection == @Batch) @then

@ECHO off
setlocal enabledelayedexpansion

for /f %%I in ('cscript /nologo /e:JScript "%~f0"') do set "prevbusday=%%I"

echo %prevbusday%
pause

For /L %%G IN (3,1,9) DO (
    For /L %%H IN (0,1,59) DO (
        set "h=0%%H"
        set "id=%prevbusday%0%%G!h:~-2!"
        echo !id!

        >test.msl (
            echo OPENVIEW SERVERID 'Mobius Server     ' REPORTID 'TrialReports ' VERSIONID ' !id! ' SECTIONID ' 0000-000 Name of Report' PAGE 1
            echo EXPORT ASCII FILE 'C:\New folder\check.rpt' CURSEC GROUP ''
            echo CLOSE
        )

        rem **Here I will add the code to call the newly minted 'test.msl' - but
        rem   I'll get to that later** 

    )
)

pause

goto :EOF
@end // end batch / begin JScript chimera

var day = 1000 * 60 * 60 * 24,
    yesterday = new Date().getDay() - 1,
    prevbusday = new Date(!yesterday?new Date()-day*3:(yesterday<0?new Date()-day*2:new Date()-day)),
    y = [
        prevbusday.getFullYear(),
        ('0' + (prevbusday.getMonth() + 1)).match(/\d\d$/)[0],
        ('0' + prevbusday.getDate()).match(/\d\d$/)[0]
    ]

WSH.Echo(y.join(''));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将“ <”或“>”写入.txt文件

来自分类Dev

使用变量写入txt文件

来自分类Dev

在python中将变量写入txt文件的新行

来自分类Dev

在Python中使用变量将新行写入文件

来自分类Dev

将列表写入txt文件

来自分类Dev

将多行变量写入.txt(CMD,NO .bat)

来自分类Dev

将具有不同变量的ArrayList写入.txt文件

来自分类Dev

将多个已加载的变量写入不同的.txt文件

来自分类Dev

在 Python 3 中使用数组将变量写入 txt 文件

来自分类Dev

将多个.bat生成的密码打印到.txt文件中

来自分类Dev

用Java写入.bat文件

来自分类Dev

Python读取txt文件中的行并写入新的txt文件

来自分类Dev

在 .bat 文件中写入文件时出错

来自分类Dev

bat文件变量返回nul

来自分类Dev

写入txt文件java

来自分类Dev

无法将csv写入.txt文件?的PHP

来自分类Dev

将列表写入txt文件时被缩短

来自分类Dev

将行写入.txt文件C ++

来自分类Dev

将网络数据写入TXT文件

来自分类Dev

将大双数写入txt文件C ++

来自分类Dev

将鼠标位置写入.txt文件

来自分类Dev

硒将值写入.txt文件

来自分类Dev

将列表写入txt文件时被缩短

来自分类Dev

将python函数输出写入.txt文件

来自分类Dev

将大数据框写入txt文件

来自分类Dev

无法将csv写入.txt文件?的PHP

来自分类Dev

将行写入.txt文件C ++

来自分类Dev

将新行写入包含变量的文件时遇到问题

来自分类Dev

使用Java类将数据写入txt文件文件