批处理文件:该命令的语法是我的批处理文件有问题不正确
问题描述:
!每次我运行它它总是这样说。这就是它说的:批处理文件:该命令的语法是我的批处理文件有问题不正确
the syntax of the command is incorrect.
而这就是其余的代码。我试图做我自己的代码。就像打开记事本一样,除了没有图形干扰。你们能帮我吗?
set /p ans= New files or saved file! n or a :
if [%ans%] = [n] (
set /p mkfl= Files you want to save in! [filename].[bat;cmd;txt] :
set /p val= Enter Key to Save!:
echo %val% > %mkfl%
SET /p t= y:
) else if [%ans%] equ [a] (
set /p flnm= Type in the filename!:
set /p val= Type in words!
set /p ans= Enter [s,o] to re-save or overwrite!:
if [%ans%] equ [s] (
ECHO append
) else if [%ans%] equ [o] (
ECHO overwrite
) else (
ECHO problem!
)
SET /p z= f:
) else (
ECHO problem occurred during executing!
SET /p a= p:
)
set /p fk= .
答
有代码中的一些错误(例如,使用= EQU或代替==在IF语句)。下面是修改后的版本至少运行......虽然它可能不是你想要它做什么,它可能让你开始。
@echo off
setlocal enabledelayedexpansion
set /p ans= New files or saved file n or a :
if [%ans%] == [n] (
set /p mkfl= Files you want to save in [filename].[bat;cmd;txt] :
set /p val= Enter Key to Save:
echo %val% > !mkfl!
SET /p t= y:
) else if [%ans%] == [a] (
set /p flnm= Type in the filename:
set /p val= Type in words:
set /p ans= Enter [s,o] to re-save or overwrite:
if [%ans%] == [s] (
ECHO append
) else if [%ans%] equ [o] (
ECHO overwrite
) else (
ECHO problem
)
SET /p z= f:
) else (
ECHO problem occurred during executing
SET /p a= p:
)
set /p fk= .
答
我想了解你的意图的情况有点困难,但已采取了最好的猜测在未经测试的重写以下:
SETLOCAL ENABLEDELAYEDEXPANSION
SET/P "ansone= New files or saved file! n or a: "
IF /I "%ansone%"=="n" (
SET/P "mkfl= Files you want to save in! [filename].[bat;cmd;txt]: "
SET/P "valone= Enter Key to Save!: "
>"!mkfl!" ECHO !valone!
SET/P "t= y: "
) ELSE (
IF /I "%ansone%"=="a" (
SET/P "flnm= Type in the filename!: "
SET/P "valone= Type in words! "
SET/P "anstwo= Enter [s,o] to re-save or overwrite!: "
IF /I "!anstwo!"=="s" (
ECHO append
) ELSE (
IF /I "!anstwo!"=="o" (
ECHO overwrite
) ELSE (
ECHO problem!
)
)
SET/P "z= f: "
) ELSE (
ECHO problem occurred during executing!
SET/P "a= p: "
)
)
SET/P "fk= . "
我假设你一个人知道这个提示的意图设置为%t%
,%z%
,%a%
& %fk%
因此,根据您的原始脚本将它们留下。
请阅读'IF'命令的帮助。通过在命令提示符下键入批处理文件名打开一个命令提示符,然后再运行批处理文件下一次故障排除。 – Squashman
sry,我是新来的CMD。 – Andrew
非常感谢#Squashman!这帮了我很多! – Andrew