gpt4 book ai didi

batch-file - 批处理语法不正确?

转载 作者:行者123 更新时间:2023-12-03 08:29:12 25 4
gpt4 key购买 nike

@echo off
title LocalTransmit Messaging Service Version 1.0
color f0
:startup
start run.cmd
set /P locationVal="Enter where you are (home or school):"
if "%locationVal%"=="home" (
set place=C:\Users\Andrew\Data\Chat\chatroom.chatfile
echo %computername% has joined the chatroom! >> %place%
goto message
)
if "%locationVal%"=="school" (
set place=\\HS-LAB-12\Users\student\Data\Chat\chatroom.chatfile
echo %computername% has joined the chatroom! >> %place%
goto message
)
goto error

因此,以上代码是短消息程序的开始代码。我试图使它更加用户友好,当上述代码突然导致命令提示符窗口关闭,并在窗口关闭前短暂出现在提示符下方,提示“命令语法不正确”。我无法弄清楚语法有什么问题。任何帮助是极大的赞赏。

附言.chatfile是由该程序的早期版本生成的,其作用类似于普通的文本文件。

最佳答案

标准的delayedexpansion问题-搜索-已被覆盖数百次了。

在一个块语句(a parenthesised series of statements)中,将解析整个整个,然后执行。块被解析时,该块内的任何%var%都会被该变量的值替换-在执行该块之前-同样的情况适用于FOR ... DO (block)

在您的情况下,place中的block被更改了,因此您需要使用一种机制来解决该问题。

在例程开始时,place是未定义的,因此您的代码被解析为

echo %computername% has joined the chatroom! >>

因此,语法错误报告。

尝试从block语句中删除该行,并将其放在 :message标签之后:
:message
echo %computername% has joined the chatroom! >> %place%

您的代码将变得讨价还价。

关于batch-file - 批处理语法不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26941139/

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