gpt4 book ai didi

windows - 为什么我的 Windows 批处理文件在满足条件后一直循环?

转载 作者:可可西里 更新时间:2023-11-01 10:08:45 25 4
gpt4 key购买 nike

基本上,我想将最新版本的 MSI 从服务器复制到我的本地计算机。我正在尝试遍历一个文件并获取包含最新版本 MSI 的第一行。我并不完全熟悉批处理文件中 for 循环和 if 语句的怪异之处。这是我找到第一行后不断循环的代码:

cd %~dp0

mkdir "c:\MyApp\QA\msi"

rem Determine what folder is the latest version of QA
setlocal enabledelayedexpansion
dir /b /o-n "\\my-server\folder\another_folder\5.0.*" > output.txt
SET /a counter=1
SET version=""
for /f "usebackq delims=" %%a in (output.txt) do (
if "counter"==1 goto install (
xcopy "\\my-server\folder\another_folder\%%a\myinstaller.msi" "c:\MyApp\QA\msi\myinstaller.msi" /y
)
SET /a counter+=1
)

goto exit

:exit

PAUSE

最佳答案

在这一行中:

if "counter"==1 goto install (

“counter” 永远 不能等于 1。另一方面,!counter! 可能。

说明(如果您需要):

"counter" 是一个文字,一个用双引号括起来的单词 counter。您正在将它与另一个文字 1 进行比较。显然两者不匹配。脚本的那部分最有可能的意思是评估变量 计数器 并将该值与1 进行比较。在括号中的命令 block 中,通常使用延迟扩展,因此 !counter!(与 %counter% 相对)。

另一方面,上述行似乎有些不寻常。它包含 goto 命令和 在它之后 的另一个命令。我认为 goto 后面的命令不太可能被执行。可能 goto install 是多余的。

关于windows - 为什么我的 Windows 批处理文件在满足条件后一直循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6682219/

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