2013-04-26 15 views
-2

我正在使用Batch創建一種'AI'程序。這是非常基本的,我很好,但無論如何,如果我打開程序,並告訴它保存一些東西(文本),那麼是否有這種情況?然後當我下次啓動程序時輸入某個特定的東西時,它會加載嗎?如何在加載下次使用的批處理程序中保存某些內容?

+0

當然,你可以保存'回聲文本> file.txt'東西。並通過管道通過另一個程序讀取回來,或通過將其讀取到一個環境變量中:[如何將文本文件的內容加載到批處理文件變量中?](http://stackoverflow.com/questions/134001 /如何將一個文本文件內容加載到批處理文件變量中)我想你需要一個更具體的問題,如果你想要的不僅僅是一個模糊的答案。 – 2013-04-26 22:39:42

回答

1

不知道這是你想要的......因爲你沒有指定是否需要「人工智能」或其他類型的機器人任務的AI。

這只是一個例子,我在幾分鐘寫,但也許這可以幫助你開始:

@Echo off 

:Ask 
Echo+ 
SET /P "Question=>>[YOU] " 
Call :Answer "%Question%" 
GOTO:ASK 

:Answer 
Echo+ 
For /F "Usebackq Tokens=1,* Delims=;" %%A in ("AI.txt") Do (
    For %%@ in (%Question%) DO (
     Echo "%%A"| FINDSTR /I "\"%%@\"" 1>NUL && (
      Echo: [AI] %%B 
      GOTO:ASK 
     ) 
    ) 
) 
Echo: [AI] I don't understand you. 
GOTO:EOF 

enter image description here

AI.txt內容:

matrix;Don't talk about it if you don't awake... 
pennys;You said pennys? That remembered me I'm so hungry... ;) 
dog;I like it! 
name;My name is Bachitia, yes it's cool... 

PART 2

這是另一種人工智能的...

@Echo off 
Setlocal enabledelayedexpansion 

Set /A "INDEX=1" 

REM :Check_Question {INDEX} {Response if answer is not saved} {Response if answer is saved} 

Call :Check_Question "_%INDEX%" "Hello, I'm glad to meet you, What's your name? " "Welcome again {Value}" 
Call :Check_Question "_%INDEX%" "What are your hobbies? " "Are you {Value} again? " 

Pause&Exit 

:Check_Question 
If not exist "AI.txt" (Echo _0;DUMMY>"AI.txt") 
For /F "Usebackq Tokens=1,* Delims=;" %%A in ("AI.txt") Do (
    If "%%A" EQU "%~1" (
     Set "Answer=%~3" 
     Set "Answer=!Answer:{Value}=%%B!" 
     Echo !Answer! 
     Set /A "INDEX+=1" 
     Exit /B 0 
    ) 
) 
Set /P "Question=%~2" 
Echo _%INDEX%;%Question%>>"AI.txt" 
Set /A "INDEX+=1" 
Exit /B 0 

首先運行:

enter image description here

Ai.txt自動生成的內容:

_0;DUMMY 
_1;Elektro 
_2;programming 

第二輪:

enter image description here

+0

我覺得你在那裏的職責要求稍高一些。他想知道的是如何創建常量變量。儘管如此,+1 – 2013-04-27 09:27:59

相關問題