吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 481|回复: 17
收起左侧

[经验求助] 有没有精通批处理的大佬,给写个bat

[复制链接]
天王盖地虎a 发表于 2024-8-13 13:50
65吾爱币
这是文件目录,我想要一个批处理脚本来启动文件夹里的运行环境,redis,nacos,mysql5.7和mysql8.0这四个,
用户输入序号启动对应服务,最好能组合输入,不能组合输入的话启动完一个服务回车可以重新输入来启动下一个也行,启动脚本会先检查windows中有没有这个服务,如果有直接启动,如果服务不存在则把中间件注册成服务再启动
其中mysql有安装成为服务的脚本
redis的安装命令比较特殊,sc不能成功,我放在txt里了
nacos可以使用sc来安装成为服务,求大佬实现,不够可以加币 ,文件放在下面
批处理实现不了用别的来实现也行,求!求!求!

文件链接 https://www.123pan.com/s/csT5Vv-XHvq3.html

最佳答案

查看完整内容

让bat隐藏运行需要用vbs文件才能实现, 方法一:新建一个文本文档,写入 set ws=WScript.CreateObject("WScript.Shell") ws.Run "d:\yy.bat",0 另存为vbs文件即可,其中d:\yy.bat是你需要运行的bat文件的路径。 方法二:用文本文档打开bat文件,在开头处写入 @echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin REM 这个方法运 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小哲网络 发表于 2024-8-13 13:50
天王盖地虎a 发表于 2024-8-14 11:50
大佬如果想隐藏cmd窗口该怎么写

让bat隐藏运行需要用vbs文件才能实现,

方法一:新建一个文本文档,写入
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "d:\yy.bat",0
另存为vbs文件即可,其中d:\yy.bat是你需要运行的bat文件的路径。

方法二:用文本文档打开bat文件,在开头处写入
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
这个方法运行bat,还是闪了一下。
天狼特工 发表于 2024-8-13 14:06
本帖最后由 天狼特工 于 2024-8-13 14:07 编辑

看不懂,不过AI的回答是这样的
要创建一个批处理脚本来管理服务的启动,我们需要按照以下步骤进行: 1. 编写一个脚本,它可以接收用户的输入,并根据输入来决定启动哪个服务。 2. 脚本中需要包含检查服务是否已存在的功能。 3. 对于Redis,由于无法使用`sc`命令,我们需要手动启动它。 4. 对于Nacos,我们可以使用`sc`命令来注册服务。 5. 对于MySQL,我们同样使用`sc`命令,但是你提到已经有了安装成为服务的脚本,我们可以调用该脚本来安装服务。 下面是一个基本的批处理脚本示例,实现了你要求的功能。请注意,你可能需要根据实际的服务启动脚本和路径来调整此脚本。
[Asm] 纯文本查看 复制代码
@echo off
setlocal enableextensions disabledelayedexpansion

:main
echo Please enter the service number to start:
echo 1: Redis
echo 2: Nacos
echo 3: MySQL 5.7
echo 4: MySQL 8.0
set /p serviceChoice=

if %serviceChoice%==1 (
    echo Starting Redis...
    :: 检查Redis服务是否存在
    sc query redis 1>nul 2>&1
    if %errorlevel% neq 0 (
        echo Redis service does not exist, trying to install it as a service...
        :: 这里放置安装Redis为服务的命令或者跳转到相应命令的标签
    ) else (
        :: 这里放置启动Redis服务的命令
    )
) else if %serviceChoice%==2 (
    echo Starting Nacos...
    :: 检查Nacos服务是否存在
    sc query nacos 1>nul 2>&1
    if %errorlevel% neq 0 (
        echo Nacos service does not exist, trying to install it as a service...
        :: 这里放置安装Nacos为服务的命令
    ) else (
        :: 这里放置启动Nacos服务的命令
    )
) else if %serviceChoice%==3 (
    echo Starting MySQL 5.7...
    :: 检查MySQL 5.7服务是否存在
    sc query mysql57 1>nul 2>&1
    if %errorlevel% neq 0 (
        echo MySQL 5.7 service does not exist, trying to install it as a service...
        :: 这里放置安装MySQL 5.7为服务的命令
    ) else (
        :: 这里放置启动MySQL 5.7服务的命令
    )
) else if %serviceChoice%==4 (
    echo Starting MySQL 8.0...
    :: 检查MySQL 8.0服务是否存在
    sc query mysql80 1>nul 2>&1
    if %errorlevel% neq 0 (
        echo MySQL 8.0 service does not exist, trying to install it as a service...
        :: 这里放置安装MySQL 8.0为服务的命令
    ) else (
        :: 这里放置启动MySQL 8.0服务的命令
    )
) else (
    echo Invalid choice. Please enter a number between 1 and 4.
    goto main
)

echo Service started. Press Enter to continue...
set /p continue=
if not defined continue (
    goto main
)

:end
endlocal


在这个脚本中,你需要填写启动各个服务的具体命令。例如,如果你有一个批处理文件`start-redis.bat`来手动启动Redis,那么你应该在该脚本中使用`start-redis.bat`作为启动命令。同样,对于MySQL的安装和服务启动,你需要使用相应的命令或脚本。

确保所有服务的安装和启动脚本都已经准备好,并且脚本中的服务名称与实际服务名称相匹配。此外,对于服务不存在的情况,你需要手动添加服务或调用相应的安装脚本。

由于这是一个示例脚本,具体的实现细节(如服务的安装和启动命令)需要根据你的实际环境来填写。
 楼主| 天王盖地虎a 发表于 2024-8-13 14:32
天狼特工 发表于 2024-8-13 14:06
看不懂,不过AI的回答是这样的
要创建一个批处理脚本来管理服务的启动,我们需要按照以下步骤进行: 1. 编 ...

我最开始也使用ai帮助调整了很久,有的地方ai的思路是不对的,比如你给出的这个脚本,输入序号脚本直接闪退掉了,我尝试在脚本中添加echo和pause来确定错误的位置,发现在选择完序号后脚本就发生了闪退
天狼特工 发表于 2024-8-13 14:38
天王盖地虎a 发表于 2024-8-13 14:32
我最开始也使用ai帮助调整了很久,有的地方ai的思路是不对的,比如你给出的这个脚本,输入序号脚本直接闪 ...

你要根据实际修改的哇
 楼主| 天王盖地虎a 发表于 2024-8-13 14:42
天狼特工 发表于 2024-8-13 14:38
你要根据实际修改的哇

我知道根据实际需求改,但是ai生成出来的脚本最开始就有问题,下面实际的命令我改了也没法用。
天狼特工 发表于 2024-8-13 15:40
天王盖地虎a 发表于 2024-8-13 14:42
我知道根据实际需求改,但是ai生成出来的脚本最开始就有问题,下面实际的命令我改了也没法用。

恕我直言,你所谓的启动运行环境,是要运行文件夹的某个文件对吧?你再看你的表述。。。

 楼主| 天王盖地虎a 发表于 2024-8-13 15:49
天狼特工 发表于 2024-8-13 15:40
恕我直言,你所谓的启动运行环境,是要运行文件夹的某个文件对吧?你再看你的表述。。。

将文件注册到windows的服务里,后续用net start 服务名启动
天狼特工 发表于 2024-8-13 16:08
本帖最后由 天狼特工 于 2024-8-13 16:10 编辑
天王盖地虎a 发表于 2024-8-13 15:49
将文件注册到windows的服务里,后续用net start 服务名启动

这个我搞不了,看看其他大佬吧

按照你上面的表述,AI给出的答案肯定是错的。因为你要求的并不是这样,AI理解成了你整个文件夹有一个服务能直接启动了
小哲网络 发表于 2024-8-13 16:29
下载一份,学习学习,看能不能写出来
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 01:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表