2016-03-04 36 views
1

所以,我有以下批号:
你能回应一个if命令吗?有没有解决方法?批量

:AddMember 
cls 
title Add Member 
color 0A 
set /p membername=Member name? 
echo %membername% >>C:\Users\187242\Desktop\swag\members.txt 
set /p memberpass=Member Password? 
echo %memberpass% >>C:\Users\187242\Desktop\swag\memberspass.txt 
echo :%membername% >>C:\Users\187242\Desktop\swag\database.bat 
echo cls >>C:\Users\187242\Desktop\swag\database.bat 
echo title >>C:\Users\187242\Desktop\swag\database.bat 
echo color 0a >>C:\Users\187242\Desktop\swag\database.bat 
echo echo Member: %membername% >>C:\Users\187242\Desktop\swag\database.bat 
echo echo Password: %memberpass% >>C:\Users\187242\Desktop\swag\database.bat 
echo set /p Memberoptions=What Would you like to do?  >>C:\Users\187242\Desktop\swag\database.bat 
echo echo 1. Nothing >>C:\Users\187242\Desktop\swag\database.bat 
echo echo 2. Change Password >>C:\Users\187242\Desktop\swag\database.bat 
echo echo 3. Change Username >>C:\Users\187242\Desktop\swag\database.bat 
echo echo 4. DELETE User >>C:\Users\187242\Desktop\swag\database.bat 
echo if "%memberoptions%"=="1" goto :Enter 
echo if "%memberoptions%"=="2" goto 

在最后两行,我试图让程序写的,如果命令到另一个代码块,这可能吗?如果没有,我有没有想过的解决方法?

+0

你是什么意思写入if命令到另一个代码块?请在这里描述你的最终目标。 – DTSCode

+0

我试图将IF命令写入批处理文件“database.bat”当我说块我的意思是每个:“_”部分 – JimmyCode

回答

2

看起来你的目标是将这两个IF命令写入database.bat。对于工作,你需要他们加倍逃脱百分号:

echo if "%%memberoptions%%"=="1" goto :Enter 
echo if "%%memberoptions%%"=="2" goto 

输出:

if "%memberoptions%"=="1" goto :Enter 
if "%memberoptions%"=="2" goto 
+0

谢谢我会尝试! – JimmyCode

3

一个容易得多建设

(
echo cls 
echo title 
echo color 0a 
)>>C:\Users\187242\Desktop\swag\database.bat 

凡括号确保echo小号被重定向到文件。我用>来创建一个新文件。 >>将追加到任何现有的文件(或者,如果当前不存在任何创建一个新的文件)

关键是要增加一倍%需要被echo编到目标文件。这是因为批量,%escape character%escape character用于暂时打开或关闭字符escaped的特殊含义。在早期的应用中,Esc被发送到打印机之前的一系列可打印的字符,以控制打印机的下划线,粗体,斜体和其他功能。

有其需要在批量的escape其他字符,尤其是><|)。这些要求caret^)作为逃生。 %是需要%作为转义的例外。

相关问题