2016-03-04 23 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^)作爲逃生。 %是需要%作爲轉義的例外。

相關問題