加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 如何使用批处理脚本创建其他脚本?

发布时间:2020-12-14 02:45:19 所属栏目:Windows 来源:网络整理
导读:我正在创建一个我想成为双重用途的脚本: 该脚本将使用用户输入选项执行命令以更改某些设置.这部分差不多完成了. 该脚本通过SETLOCAL / ENDLOCAL和SET / P将用户选择收集到本地环境变量中,稍后在脚本中调用变量以执行命令. 收集用户选项后,有一个验证步骤显
我正在创建一个我想成为双重用途的脚本:

>该脚本将使用用户输入选项执行命令以更改某些设置.这部分差不多完成了.

>该脚本通过SETLOCAL / ENDLOCAL和SET / P将用户选择收集到本地环境变量中,稍后在脚本中调用变量以执行命令.
>收集用户选项后,有一个验证步骤显示这些选项,并在继续执行命令之前要求用户进行确认.

>该脚本将为用户提供一个选项,可以自动创建一个内置选项的新脚本,以便将来使用.

这是我目前的计划概念,以达到目标#2,虽然我不确定如何写它:

>构建可以复制的模板脚本,以开始创建自定义脚本.

>在模板脚本的最开始,SETLOCAL将隔离由最终脚本创建的环境变量,以便在脚本完成运行后它们不会保留.
> SETLOCAL之后将立即成为指向脚本最末端标签的GOTO命令.标签将是已完成脚本中变量定义部分的开头.
>在GOTO命令之后将是一个名为STARTEXEC的标签,在变量定义完成后将跳转到该标签.
>在变量部分标签之前将是带有一些命令的标记部分以退出脚本.

>进入当前脚本:

>在验证步骤中添加一个选项,询问用户是否要创建静态脚本.如果是,则通过SET / P提示用户输入文件名,然后通过GOTO在此脚本的执行流程中包含脚本构建命令.

>使用类似这些的命令来构建静态脚本的变量部分:

COPY ScriptTemplate.bat%UserFileName%.bat
ECHO SET VAR1 =%UserVar1%>> %UserFileName%蝙蝠
ECHO SET VAR2 =%UserVar2%>> %UserFileName%蝙蝠
>再添加一行以确保静态脚本跳转到命令执行.

ECHO GOTO STARTEXEC>> %UserFileName%蝙蝠

我的问题在这里:

>我的方法是否相当合理,还是通过批处理脚本还有更好的方法吗?
>在返回到变量部分之前,我应该使用什么来退出静态脚本?我知道我需要一个ENDLOCAL. EXIT会在这里工作,还是有其他更合适的东西?

解决方法

模板的想法似乎是简单的方法(不确定简短,但这可能是我会接近它的方式.)创建一个基于原始的单独模板,删除所有的SET / P命令.

编辑:

删除了旧答案.

在模板的末尾,写下:

GOTO:EOF

:User_Defined_Variables

在文件的开头,写:

CALL:User_Defined_Variables

在原始脚本中,在用户确认创建自定义脚本后,复制模板文件COPY / y template.bat userscript.bat将所有用户的变量发送给它.

(ECHO var1 = %uservar1% 
 ECHO var2 = %uservar2%
 Echo var3 = %uservar4%)>> userscript.bat
GOTO:EOF

因此,当用户运行脚本时,CALL:User_Defined_Variables将设置用户的脚本参数并继续执行脚本的其余部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读