gpt4 book ai didi

batch-file - 如何获取Windows批处理文件以安全地进行自身更新

转载 作者:行者123 更新时间:2023-12-04 05:18:43 28 4
gpt4 key购买 nike

例如我想运行一个Windows批处理文件,例如upgrade.bat,它将一堆文件从源目录复制到该批处理文件所在的目录中。问题是,复制的文件之一可能是升级的较新版本。 bat,以便该批处理文件在其仍在运行时将覆盖自身。

这似乎导致批处理文件执行某些不可预测的行为,因此我想避免复制仍在运行的批处理文件。理想情况下,我希望现有版本的upgrade.bat可以运行到完成为止,然后下次运行新版本。有没有(简单的)方法来实现这一目标?

最佳答案

您可以使用start命令将副本作为最后一个操作来运行,以从另一个终端启动它。检查此示例,特别是最后几行。

@echo off
set CUR_FILE=batman.bat
set FOUND_EQUAL="FALSE"
set FROM_DIR=c:\temp\galeria\

SETLOCAL DisableDelayedExpansion
FOR /R %FROM_DIR% %%F IN (*) DO (
SET "p=%%F"
SETLOCAL EnableDelayedExpansion
SET ABC=!p:%FROM_DIR%=!

IF NOT !ABC! == !CUR_FILE! (
echo copying %%F
copy "%%F" .
)
ENDLOCAL
)

echo trying to copy file with the same name [last operation]
start copy "%FROM_DIR%%CUR_FILE%" .

关于batch-file - 如何获取Windows批处理文件以安全地进行自身更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17181342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com