我最近給出的建議,從一個批處理腳本輸出變量到一個文本文件中使用出口批次變量文本文件
set $>savefile
,並返回使用
for /f "delims=" %%a in (savefile) do set %%a
在在另一種啓動的變量實現時,這不會創建帶有變量的文件,導致腳本中出現錯誤,從而導致批處理關閉。爲了彌補結束,我創建了一個檢查來顯示錯誤消息,但仍然無法獲取腳本將變量導出到文件中。
變量
::Variables
set Location=Und
set Name=Und
set Gender=Und
set Age=Und
set Gold=0
set Hunger=Satisfied
set Illness=None
set Wounds=None
set CHP=10
set MHP=10
set CMP=0
set MMP=0
set DMG=(%STR%/5)+%RTWPDMG%
set DFN=0+%HeadAR%+%NeckAR%+%Shoulder%+%Chest%+%Glove%+%Leg%+%Feet%
set INT=1
set DEX=1
set STR=1
set Head=----
set Shoulder=----
set Neck=----
set Chest=Shirt
set Glove=----
set Leg=Pants
set Feet=Shoes
set LTWP=----
set RTWP=----
goto Start
保存腳本
::Save
:Save
cls
set $Location=%Location%
set $Name=%Name%
set $Gender=%Gender%
set $Age=%Age%
set $Gold=%Gold%
set $Hunger=%Hunger%
set $Illness=%Illness%
set $Wounds=%Wounds%
set $CHP=%CHP%
set $MHP=%MHP%
set $CMP=%CMP%
set $MMP=%MMP%
set $DMG=%DMG%
set $DFN=%DFN%
set $INT=%INT%
set $DEX=%DEX%
set $STR=%STR%
set $Head=%Head%
set $Shoulder=%Shoulder%
set $Neck=%Neck%
set $Chest=%Chest%
set $Glove=%Glove%
set $Leg=%Leg%
set $Feet=%Feet%
set $LTWP=%LTWP%
set $RTWP=%RTWP%
set $>%Name%_Savefile.txt
cls
echo SAVED
echo.
echo.
pause
Goto Start
和負載腳本
::Select Character to Load
:LoadError
Echo INVALID NAME
echo.
echo.
echo.
echo.
goto LoadSelect1
:LoadSelect
cls
goto LoadSelect1
:LoadSelect1
set /p Name=Enter character to load:
goto Load
:Load
cls
if EXIST %Name%_Savefile.txt goto LoadSuccess
goto LoadError
:Load
for /f "delims=" %%a in %Name%_Savefile.txt do set %%a
goto Stats
我缺少的東西?我希望所有以$開頭的變量都可以被定位,而不需要列出每個變量。
紅利問題: 如果我使用$ Variable作爲原始變量,他們仍然使用%Variable%?調用嗎?如果是這樣,它會減少相當多的混亂。
- 我認識到batch是一種次優語言,但它是我唯一熟悉的語言。我目前正在研究lua和C++,並計劃通過稍後轉換批處理文件來練習兩者。
編輯:該文件被創建,但只包含$在第1行,沒有別的。我假設我誤解了變量export命令的使用。
http://stackoverflow.com/questions/23011289/retrieving-variables-from-txt-error-batch提供了一個簡單的解決方案 – Kreinas