- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我和我的几个 friend 正在使用 Dropbox 上的共享文件夹,我们的 minecraft 服务器已上传到该文件夹。这一点是任何人都可以随时启动服务器,而不是一个人必须一直运行它。
唯一的问题是,两个人可能会同时启动服务器,并且可能会出现重叠的保存文件。为了解决这个问题,我想编写一个简单的批处理文件。
逻辑是这样的:
如果进程“minecraft_server.1.8.1”正在运行,将服务器文件夹重命名为“RUNNING AS _INSERT_NAME_HERE_”,否则将其重命名回“Minecraft 服务器”
NAME 将被读取为计算机名称(如果可能的话),或者来自用户创建的某个 txt 文件(写入他们自己的名称)
我从来没有写过批处理文件,我不知道这是否可行,但它看起来很简单,我们将不胜感激。
提前谢谢你。
好的,经过一些修补,我写了我的第一个批处理文件。在大多数情况下,它似乎可以正常工作,但我似乎无法实现正确的循环。
@echo off
IF EXIST *_RUNNING.txt (
echo "ERROR, SERVER ALREADY RUNNING as %computername%"
pause
EXIT
) ELSE (
copy NUL %computername%_RUNNING.txt
START /WAIT minecraft_server.1.8.1.exe
tasklist /FI "IMAGENAME eq javaw.exe" 2>NUL | find /I /N "javaw.exe">NUL
:loop
IF "%ERRORLEVEL%"=="0" (
TIMEOUT /t 5
GOTO loop
) ELSE (
del %computername%_RUNNING.txt
echo "Server ended."
pause
EXIT ) )
当我启动 minecraft_server.1.8.1.exe 时,它会启动 javaw.exe,这是启动服务器的实际进程。之后我只检查进程是否仍在运行。但是我似乎无法循环代码的特定部分,我不断收到 synatx 错误。
最佳答案
这不是您在问题主题中寻找的确切内容,但如果我做对了,您希望避免服务器启动两次。所以我会做以下事情:
创建一个批处理文件:
首先检查名为 *_MinecraftServer.txt 的文件是否存在。如果是,它假定服务器已经在运行并且只是退出。如果不存在这样的文件,它会创建该文件。然后它启动服务器。服务器退出后,文件将被删除。
这会是这样的:
@echo off
REM Define a filename for the text-file informing other people that a server is running
SET FILENAME=%computername%_MinecraftServer.txt
REM Check if such a file already exists, if not refuse to start:
if exist *_MinecraftServer.txt (
REM Such a file exists, print the content of the file:
echo "ERROR, SERVER ALREADY RUNNING"
type *_MinecraftServer.txt
) else (
REM No such file is found. Create a file, then start the server process.
echo "SERVER is running on %computername%" > %FILENAME%
REM replace the notepad.exe with the name of the server.exe (and all params it requires)
REM Maybe you will also need to write the full-path to the server
notepad.exe
REM Once the server exits, remove the file
del %FILENAME%
echo "Server exited"
)
REM Require the user to hit a key before exiting the batch:
pause
此示例批处理启动一个 notepad.exe 并创建一个文件 COMPUTERNAME_MinecraftServer.txt。您必须将 notepad.exe 替换为 minecraft 服务器 exe 的路径。请注意,如果涉及的任何目录包含空格,我不确定此批处理是否有效。
当然,这只有在所有人从现在开始只使用批处理文件启动服务器时才有效。此外,理论上,如果多个用户或多或少同时启动服务器,则可以运行多个服务器,因为在 dropbox 上传并分发创建的 txt 文件之前会有一些延迟。
关于windows - 编写一个简单的批处理文件来检查程序是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28560928/
我需要根据需要动态设置文本区域,但它不想正常工作。 JQuery 会自行检查,但无法检查是否已检查。但是当您在第二个单选框内单击时,始终需要文本区域。我尝试了很多次让它工作,但它仍然有问题。我添加了“
我需要在 Django 中进行 API 调用(某种形式),作为我们所需的自定义身份验证系统的一部分。用户名和密码通过 SSL 发送到特定 URL(对这些参数使用 GET),响应应该是 HTTP 200
我将在我的可移植 C 代码中使用 #warning 来生成编译时警告。但并非所有平台都支持 #warning。有什么方法可以找到该平台是否支持 #warning。 #ifdef warning
我编写了一个函数来检查某个数字是否存在于某个区间内。停止搜索的最佳方法是什么?这个: for (i = a; i <= b; i++) { fi = f(i); if (fi == c) {
我想知道在 c 中是否有一种方法可以检查,例如在 for 函数中,如果变量等于或不等于某些字符,而不必每次都重复进行相等性检查。如果我没记错的话,以这种方式检查相等性是不正确的: if (a == (
我有如下日志功能 void log_error(char * file_name, int line_num, int err_code) { printf("%s:%d:%s\n", fil
使用 ssh-keygen 生成的 key 对在 macOS 上可以有不同的格式。 macOS 可读的标准 PEM ASN.1 对象 SecKey API 带有文本标题的 PEM OpenSSH ke
我正在尝试编写一个 excel if 语句。我不熟悉使用 Excel 具有的所有额外功能。我正在使用一个名为 importXML() 的函数.我正在尝试检查我正在使用的函数是否生成“#VALUE!”错
有没有办法检查是否没有 AIO 写入给定文件?我在我的 Unix 类(class)上制作了一个项目,该项目将是一个上下文无关(基于 UDP)的国际象棋服务器,并且所有数据都必须存储在文件中。应用程序将
我有一个如下所示的函数: public Status execute() { Status status = doSomething(); if (status != Stat
我正在使用 Composer,我不希望 PhpStorm 在 vendor 文件夹上运行任何错误检查或检查,因为它对 vendor/中的某些代码显示误报composer/autoload_static
Chapel 的一个很好的特性是它区分了数组的域和它的分布。检查两个数组是否具有相同的域和分布(通常想要的)的最佳方法是什么? 我能看到的最好的方法是检查 D1==D2和 D1.dist==D2.di
在我的 JavaScript 函数中,我为所有输入、文本区域和选择字段提供实际值作为 initial_value: $('input, textarea, select').each(function
我正在编写一个分解为几个简单函数的 PHP 类。在构造函数中,它调用另一个名为 processFile 的函数。该函数调用 5 个私有(private)函数并进行检查。如果检查失败,它会将消息分配给
这个问题已经有答案了: How to detect if user it trying to open a link in a new tab? (2 个回答) 已关闭 7 年前。 我认为 JavaS
我正在浏览我们的代码库并看到很多这样的测试: declare @row_id int = ... declare @row_attribute string select @row_attribu
我正在声明一个用作比较的函数。我的问题是: 为什么条件充当语句? 为什么第 4 行可以工作,而第 5 行却不行? 我知道这段代码不切实际且未使用,但为什么编译器允许这种语法? 谷歌没有找到答案。但话又
到目前为止,我有一个带有空文本字段的 PHP Kontaktform,并使用以下命令检查了所需的字段: $name = check_input($_POST['name'], "请输入姓名。"); 现
目前,我能想到的合理检查的唯一方法没有臃肿的逻辑: if ( $value > 0 ) { // Okay } else { // Not Okay } 有没有更好的办法? 最佳答案
我正在尝试运行一个脚本,如果 i 存在(意味着存在 i 值,任何值)或其他部分,我希望运行其中的一部分如果i没有值就运行,有人可以启发我吗? 我说的是 for 循环,比如 for (var i=0;
我是一名优秀的程序员,十分优秀!