ZZW_13887 2021-05-25 00:44 采纳率: 0%
浏览 170

bat在字符串提取数字,需要把数字映射到同bat程序中的某一项怎么提取,感谢回答的大佬

@echo off
title %#% %$%%$%%@% %z%
set /p ID=MODID:
set "line=%ID%"
>"%tmp%\j.j" echo;var $m=WSH.Arguments(0).match(/\d+/g);WSH.echo($m.join('\r\n'))
for /f "delims=" %%a in ('cscript -nologo -e:jscript "%tmp%\j.j" "%line%"') do (
    echo;%%a

)
echo;%#% %$%%$%%@% %z%
steamcmd +login 账号 密码 +workshop_download_item 221100 %提取的数字放到这里% +quit
  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-06-08 23:27
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这段代码的作用是什么?请逐行解释每一行代码的意义。
    1. @echo off:关闭命令行窗口的回显功能,即不在窗口显示执行命令的详细信息。
    2. title:设置命令行窗口的标题。这里是设置窗口标题为%#% %$%%$%%@% %z%
    3. set /p ID=MODID:等待用户输入MODID,并将其保存到变量ID中。
    4. set "line=%ID%":将输入的ID存入变量line中。
    5. > "%tmp%\j.j":将一个echo命令的输出重定向到一个名为j.j的文件中。
    6. echo;var $m=WSH.Arguments(0).match(/\d+/g);WSH.echo($m.join(‘\r\n’)):这是一个JavaScript脚本,用于将line中的数字提取出来并以\r\n的格式输出。
    7. for /f "delims=" %%a in ('cscript -nologo -e:jscript "%tmp%\j.j" "%line%"') do (echo;%%a):使用for命令将第6行中的JavaScript脚本执行,并将输出赋值给变量%%a,然后使用echo命令输出。
    8. echo;%#% %$%%$%%@% %z%:输出一个%#% %$%%$%%@% %z%的字符串。
    9. steamcmd +login 账号 密码 +workshop_download_item 221100 %提取的数字放到这里% +quit:使用steamcmd工具下载指定ID的MOD。其中,%提取的数字放到这里%即为使用第6行脚本提取出的数字。 代码示例: 我们假设用户输入的MODID为123456,其余都保持默认值。执行代码后,窗口标题会变成"%#% %$%%$%%@% %z%",输入MODID后会执行下载指定ID的MOD的操作。以下为每行代码的实际意义。
    @echo off
    title %#% %$%%$%%@% %z%
    set /p ID=MODID:
    set "line=%ID%"
    > "%tmp%\j.j" echo;var $m=WSH.Arguments(0).match(/\d+/g);WSH.echo($m.join('\r\n'))
    for /f "delims=" %%a in ('cscript -nologo -e:jscript "%tmp%\j.j" "%line%"') do (echo;%%a)
    echo;%#% %$%%$%%@% %z%
    steamcmd +login 账号 密码 +workshop_download_item 221100 %提取的数字放到这里% +quit
    

    注意:代码中变量账号、密码和提取的数字放到这里均需要替换成实际的值才能正常运行。

    评论

报告相同问题?