【发布时间】:2014-10-11 04:42:23
【问题描述】:
代码:
@echo off
set /a x=5
set /a TNUM=%x%-3
echo %TNUM%
pause
输出是:
ECHO is off
那么,我该如何解决这个问题?
这是完整的代码:
@echo off
setlocal enableextensions
set /a COLUMNS=60
set /a ROWS=40
mode con: cols=%COLUMNS% lines=%ROWS%
:main
set /a xpos=5
set /a ypos=5
call:displayScreen
pause >nul
goto :eof
::FUNCTIONS::
:displayScreen
set /a TEMPR=%ROWS%-3
for /l %%c in (1,1,%COLUMNS%) do echo|set /p=#
for /l %%r in (1,1,%TEMPR%) do (
echo|set /p=#
if %%r==%ypos% (
set /a TNUM=%xpos%-3
echo %TNUM%
for /l %%t in (1,1,%TNUM%) do echo|set /p=A
echo|set /p=o
set /a TNUM=%COLUMNS%-%xpos%-1
for /l %%t in (1,1,%TNUM%) do echo|set /p=A
) else (
set /a TNUM=%COLUMNS%-2
for /l %%t in (1,1,%TNUM%) do (
echo|set /p=A
)
)
echo|set /p=#
echo.
)
for /l %%c in (1,1,%COLUMNS%) do echo|set /p=#
主要问题出在显示屏功能上。它应该打印屏幕并在我给它的两个坐标处设置 x。我输入了 echo %TNUM% 这样我就可以看到里面有什么,它总是等于“”。
【问题讨论】:
-
你试过添加
setlocal ENABLEDELAYEDEXPANSION吗?然后将%x%替换为!x!? -
我只是在学习batch,所以不太了解。我将如何适应代码?你介意编辑一下吗?
-
对我来说非常愉快。你是用剪切粘贴的方式发帖吗?
-
+1 您的代码运行良好。始终展示您实际在做什么,因为如果您不这样做,那么您将得到可能在实际任务中不起作用的答案。
-
@foxidrive 我添加了完整的代码。
标签: variables batch-file scripting