Batch file 批处理语法不正确?

Batch file 批处理语法不正确?,batch-file,syntax,syntax-error,Batch File,Syntax,Syntax Error,因此,上面的代码是短消息程序的开始代码。我正试图让它更方便用户,突然上述代码导致命令提示符窗口关闭,并导致“命令语法不正确”在窗口关闭前短暂出现在提示符下方。我不知道我的语法有什么问题。非常感谢您的帮助 另外,.chatfile是由此程序的早期版本生成的,其作用类似于普通文本文件。添加到上述代码顶部附近。你得到了什么?里面有特殊人物吗 @echo off title LocalTransmit Messaging Service Version 1.0 color f0 :startup sta

因此,上面的代码是短消息程序的开始代码。我正试图让它更方便用户,突然上述代码导致命令提示符窗口关闭,并导致“命令语法不正确”在窗口关闭前短暂出现在提示符下方。我不知道我的语法有什么问题。非常感谢您的帮助


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

添加到上述代码顶部附近。你得到了什么?里面有特殊人物吗

@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

标准
delayedexpansion
problem-搜索,所以-它被覆盖了数百次

在块语句
(一系列带括号的语句)
中,解析整个块,然后执行。在解析块时,块内的任何
%var%
都将替换为该变量的值——在执行块之前——这同样适用于。。。DO(块)

在您的情况下,
块中的
位置
正在更改,因此您需要使用其中一种机制来解决问题

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

echo(%ComputerName%
pause
因此出现了语法错误报告

尝试从块语句中删除该行,并将其放在
:message
标签后面:

echo %computername% has joined the chatroom! >>

您的代码将变得更短。

非常感谢!我设置了一个名为a=1的变量,使其仅在:消息页面上执行一次回显“(name)已加入聊天室!”。
:message
echo %computername% has joined the chatroom! >> %place%