2016-01-02 2 views
0

Пакетный скрипт не принимает пустой space (не пустым) как array element. Итак, как добавить элемент, содержащий только пространство для массива в batch file. На самом деле я хочу, чтобы print этот элемент пространства с другими элементами, как показано в цикле. Я ценю вашу помощь заранее.Как добавить пространство в массив как элемент в пакетном файле

echo off 
cls 
::set arr=(a b c d 'Space') 
setlocal vari=' ' 
set arr=(a,b,c,d, %vari%) 

for %%1 in %arr% do (
    echo %%1 

    for %%2 in %arr% do (
     echo %%1%%2 

     for %%3 in %arr% do (
      echo %%1%%2%%3 

      for %%4 in %arr% do (
       echo %%1%%2%%3%%4 
      ) 
     ) 
    ) 
) 
+0

Используйте 'set', а не' setlocal'. И используйте '' 'вместо' ''. – SomethingDark

+0

ok, но «космос» не печатается даже с использованием «» или « – asif

+1

Это:' set arr = (a, b, c, d, "") 'is not массив, но _list_ (или команда FOR _set_). Описание того, что такое массив в Batch, см. [этот пост] (http://stackoverflow.com/questions/10166386/arrays-linked-lists-and -other-data-structure-in-cmd-exe-batch-script/10167990 # 10167990). Я предлагаю вам исправить заголовок и описание вопроса ... – Aacini

ответ

0
echo off 
cls 
::set arr=(a b c d 'Space') 
set vari=" " 
set arr=(a,b,c,d, %vari%) 

for %%1 in %arr% do (
    echo(%%~1 

    for %%2 in %arr% do (
     echo(%%~1%%~2 

     for %%3 in %arr% do (
      echo(%%~1%%~2%%~3 

      for %%4 in %arr% do (
       echo(%%~1%%~2%%~3%%~4 
      ) 
     ) 
    ) 
) 

в основном

use set, not setlocal. And use " instead of '. – SomethingDark 18 mins ago 

плюс %%~x удалить qoutes в Output.

+0

расскажите, как использовать %% ~ x и где? – asif

+0

@asif - не буквальная 'x', а только переменная, которую вы используете. '~' используется для удаления внешних кавычек из значения. – SomethingDark

+0

Если '%% x' - это строка с котировкой' '' ', то' %% ~ x' удаляет кавычки (в противном случае она оставляет строку в отдельности). Неплохо использовать '%% 1 .. %% 4' IMHO - это может привести к неожиданным результатам, поскольку'% 1'..'% 9' являются параметрами процедуры. Обратите внимание, что нет необходимости использовать 'vari' -' '' ', будет делать то же самое. – Magoo

Смежные вопросы