首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >for循环中的Windows批处理变量

for循环中的Windows批处理变量
EN

Stack Overflow用户
提问于 2021-02-15 15:52:19
回答 1查看 82关注 0票数 0

我创建了一个快速批处理文件来检查valheim服务器,并对保存的内容进行备份,因为它不在服务器文件夹中,但我想让它更容易使用变量。

我想在这里设置一个变量for %%a in (C:\Users\Administrator\AppData\LocalLow\IronGate\Valheim\worlds\Dedicated.db)

例如for %%a in (%%valserverdb\Dedicated.db)

如何做到这一点?

代码语言:javascript
复制
@echo off
:loop
tasklist /FI "IMAGENAME eq valheim_server.exe" 2>NUL | find /I /N "valheim_server.exe">NUL
if "%ERRORLEVEL%"=="0" echo Valheim Server is running
if "%ERRORLEVEL%"=="1" echo Valheim Server is not running starting it. | E:\gameservers\valheim\start_headless_server.bat

SET valserverdb=C:\Users\Administrator\AppData\LocalLow\IronGate\Valheim\worlds
SET valbackup=E:\gameservers\backup\IronGate\Valheim\worlds

for %%a in (C:\Users\Administrator\AppData\LocalLow\IronGate\Valheim\worlds\Dedicated.db) do set valserverdbcheck=%%~ta

for %%b in (E:\gameservers\backup\IronGate\Valheim\worlds\Dedicated.db) do set valbackupcheck=%%~tb

if "%valserverdbcheck%" gtr "%valbackupcheck%" (xcopy "%valserverdb%" "%valbackup%" /S /E /Y) else (@echo File has not been changed. skipping)

timeout /t 300 /nobreak > NUL
goto loop
EN

回答 1

Stack Overflow用户

发布于 2021-02-15 17:04:17

代码语言:javascript
复制
if "%ERRORLEVEL%"=="1" echo Valheim Server is not running starting it. | E:\gameservers\valheim\start_headless_server.bat

这将运行E:\game...rver.bat并将Valheim Server is not running starting it.作为stdin上的输入提供给该.bat

我建议您将|替换为&,以便同时执行echo和运行.bat

--

提示:使用set "var1=data"设置值-这可以避免由尾随空格引起的问题。相比之下,使用if "thing1" == "thing2" ...可以避免thing1/2中的空格导致的问题。

if "%valserverdbcheck%" gtr "%valbackupcheck%"将两个日期作为字符串进行比较,而不是作为日期值。我使用dd/mm/yy...格式表示日期,所以对于我来说,如果服务器日期是01/02/2021 (2月1日),而备份日期是31/01/2021,那么由于"01/02/2021“小于"31/01/2021”,比较将不会选择适当的选项。我建议neq是一个更合适的比较操作符。

%%a in (%%valserverdb\Dedicated.db)的语法不正确。请提供先行字符串和所需字符串的示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66204366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档