大家好,我想帮助我从头开始创建的这个批处理文件。仅供参考我没有编码exp。
# MySQL Connection string #
function Connect-MySQL([string]$user, [string]$pass, [string]$MySQLHost, [string]$database)
{
# Load MySQL .NET Connector Objects
[void][system.reflection.Assembly]::LoadWithPartialName("MySql.Data")
$connStr = "server=" + $MySQLHost + ";port=3306;uid=" + $user + ";pwd=" + $pass + ";database=" + $database + ";Pooling=FALSE"
$conn = New-Object MySql.Data.MySqlClient.MySqlConnection($connStr)
$conn.Open()
return $conn
}
# Close Conn
function Disconnect-MySQL()
{
$conn.Close()
}
# MySQL Connection Vars #
$user = ''
$pass = ''
$database = ''
$MySQLHost = ''
$script:conn = Connect-MySQL $user $pass $MySQLHost $database
function Execute-MySQLNonQuery([string]$query)
{
$command = $conn.CreateCommand()
$command.CommandText = $query
$RowsInserted = $command.ExecuteNonQuery()
if ($RowsInserted)
{
return $RowInserted
}
else
{
return $false
}
}
$events = Get-WinEvent -FilterHashtable @{ LogName = 'System'; ID = 7001, 7002 } | select replacementstrings, machinename, timegenerated
foreach ($event in $events)
{
$sid = $event.replacementstrings[1]
$time = $event.timegenerated
$id = $event.machinename
$query = "INSERT INTO info.ewarp_testing (data1,data2,data3) VALUES ('$sid','$time','$id')"
$Rows = Execute-MySQLNonQuery $query
}
所以我有一个Windows Server VPS,我托管我托管的Dedi Box。我有一个名为“Unturned”的游戏有六个游戏服务器。托管这么多服务器的唯一方法是通过桌面快捷方式单独启动它们。
我真的希望@echo off
color B
echo About to start....
TIMEOUT 5
echo Killing any Servers before I start them....
TIMEOUT 5
taskkill /f /im Unturned.exe
echo DONE!
TIMEOUT 5
echo Starting =ZBG= servers....
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp1ar.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp2sn.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp3ar.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp4sn.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp5ar.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp6sn.lnk"
TIMEOUT 8
:loop
echo **@@**DONT FORGET TO CLOSE ME**@@**
goto loop
exit
不会说“timeout
”,我尝试使用please press any key to continue
或pause
命令,我无法让它工作,它需要拥有我在上面脚本中设置的时间量,这样服务器就可以开始干净而不会从同一时间开始出现错误。
我需要脚本执行相同的操作,但最后有一个计时器,每4小时重新启动一次。谈论它很简单但我不太了解这一点。
答案 0 :(得分:1)
以这种方式使用超时:
@timeout /T 5 /nobreak >NUL
必读:
在cmd
HELP TIMEOUT
,HELP GOTO
,HELP START
和HELP ECHO
此脚本每4小时重启一次服务器。
@echo off
color B
:loop
cls
echo About to start....
@timeout /T 1 /nobreak >NUL
echo Killing any Servers before I start them....
@timeout /T 1 /nobreak >NUL
taskkill /f /im Unturned.exe
echo DONE!
@timeout /T 10 /nobreak >NUL
echo Server #1 is going to start
start "" /b "C:\Users\Administrator\Desktop\pvp1ar.lnk"
echo Server #2 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp2sn.lnk"
echo Server #3 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp3ar.lnk"
echo Server #4 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp4sn.lnk"
echo Server #5 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp5ar.lnk"
echo Server #6 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp6sn.lnk"
REM Every 4 hours kill and start servers. note 1H = 3600 seconds
REM use timeout then goto loop
@timeout /T 14400 /nobreak >NUL
goto loop
注意:
timeout
删除>NUL
/nobreak