这是我的代码:
:LevelSave
cls & echo.Choose a save file: & echo.
if exist savedata.txt (
for /f "tokens=*" %%P in ('type savedata.txt') do (
%%P
set /a q=q+1
echo. [!q!] !savename! - !lastcd!
set r=!r!!q!
)
)
这是savedata.txt的内容
set savename=save1 && set lastcd=start\Continue on path
但是在运行时,它会输出:
Choose a save file:
save1 && set lastcd=start\Continue on path - save1
即使我删除了echo
。
我尝试在savedata.txt中使用不同的引号排列,但我认为问题实际上在for命令中。你知道我做错了吗?
答案 0 :(得分:1)
只需在call
set
之前加savedata.txt
savedata.txt:
call set savename=save1 && call set lastcd=start\Continue on path
答案 1 :(得分:1)
这是一种解决方法:
savedata.txt
save1|start\Continue on path
save2|end\fallen into the pit
码
@echo off
setlocal enabledelayedexpansion
:LevelSave
cls & echo.Choose a save file: & echo.
if exist savedata.txt (
for /f "tokens=1,* delims=|" %%P in ('type savedata.txt') do (
set savename=%%P
set lastcd=%%Q
set /a q=q+1
echo. [!q!] !savename! - !lastcd!
set r=!r!!q!
)
)
pause
答案 2 :(得分:1)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
:LevelSave
cls & echo.Choose a save file: & echo.
SET savename=some name&SET lastcd=somelastcd&SET q=6
::@ECHO on
if exist q20731333.txt (
for /f "tokens=*" %%P in ('type q20731333.txt') do (
CALL :sub "%%P"
set /a q=q+1
echo. [!q!] !savename! - !lastcd!
set r=!r!!q!
)
)
GOTO :EOF
:sub
%~1
GOTO :eof
这应该有用......我已经更改了测试的文件名...以及实例化的变量名。