将单个空格分配给变量

时间:2015-10-26 14:14:05

标签: batch-file cmd

所以我想要一个基本上是空格或任何空字符的变量。这将允许我显示一个空表,如:

#########
#       #
#       #
#       #
#########

但我能得到的只有:

#########
##
##
##
#########

有什么特殊的角色可以做我需要的吗?我环顾四周,看到你可以将BackSpace分配给变量,但就是这样。也许我不善于寻找,但我无法找到解决方案。

4 个答案:

答案 0 :(得分:2)

变量需要分隔。这可以通过使用引号来完成。

SET "ASPACE= "

答案 1 :(得分:2)

您可以使用" "实现这个目标

set "x= "

答案 2 :(得分:2)

set /p吃领先的空间。这可能符合您的需求吗?

@echo off
setlocal enabledelayedexpansion

set "x=" 
for /L %%i in (1, 1, 12) do set "x=!x! " 
echo ##############
echo #%x%#
echo #%x%#
echo ##############

这会在回显它之前组合的空格字符串。

替代:

@echo off
set "x=                                     "
echo #%x:~0,12%#

这会从一长串空格中获取所需长度的子字符串(应该更快)

如果你想更灵活:

@echo off
setlocal enabledelayedexpansion

set "spaces=                                           " 
set "border=###########################################"
set len=12

echo #!border:~0,%len%!#
echo #!spaces:~0,%len%!#
echo #!spaces:~0,3!Hello.!spaces:~0,3!#
echo #!spaces:~0,%len%!#
echo #!border:~0,%len%!#

答案 3 :(得分:1)

尝试更新的代码,它将执行所需的

@echo off
set a=######
set b=#
set "c= "
echo %a%
echo %b%%c%%c%%c%%c%%b%
echo %b%%c%%c%%c%%c%%b%
echo %b%%c%%c%%c%%c%%b%
echo %b%%c%%c%%c%%c%%b%
echo %a%
pause

如果你想要一个更大的表,那么输入就需要一点,所以我们可以使用循环

尝试以下代码

@echo off
set a=######
set b=#
set "c= "
for /L %%j in (1,1,1) do (
echo %a%
for /L %%i in (1, 1, 5) do ( echo %b%%c%%c%%c%%c%%b%)
echo %a%
)
pause