|
Конкатенация значений переменных среды в одну строку в .cmd/.bat файлах | ☑ | ||
---|---|---|---|---|
0
Vladal
21.09.15
✎
11:16
|
Есть две переменные в среде Windows:
%homedrive% со строковым значением "c:" %homepath% со строковым значением "\users\user" Мне нужно значения этих переменных вставить в команду dir, чтобы получить содержимое папки c:\users\user В командной строке запускаю echo %homedrive%%homepath% и вижу результат: c:\users\user Запускаю dir %homedrive%%homepath% и получаю ошибку, что файл не найден. По отдельности DIR работает с каждой из переменных: dir %homedrive% --- выдаёт содержимое текущей (активной) директории на диске С:. dir %homepath% --- выдаёт содержимое папки \users\user только если активный диск С: Каким образом "склеить" в одну строку значения этих переменных и подставить в команду dir? |
|||
1
Провинциальный 1сник
21.09.15
✎
11:19
|
УМВР. ЧЯДНТ?
----------- B:\>test.cmd B:\>set homedrive=c:\ B:\>set homepath=users\user B:\>echo c:\users\user c:\users\user |
|||
2
Vladal
21.09.15
✎
11:20
|
Я сделал так:
set testline = "" set testline = testline + %homedrive% + %homepath% dir %testline% А одной командой можно? |
|||
3
Vladal
21.09.15
✎
11:21
|
(1) что ты делаешь не так? ты невнимательно читаешь сабж
я эхо с переменной выводил. заставь DIR вывести содержимое нужного пути. |
|||
4
Провинциальный 1сник
21.09.15
✎
11:21
|
(3) Да легко.
--- B:\>test.cmd B:\>set homedrive=c:\ B:\>set homepath=users\user B:\>echo c:\users\user c:\users\user B:\>dir c:\users\user Том в устройстве C имеет метку SYSTEM Серийный номер тома: 182C-7AF6 Содержимое папки c:\users\user 21.09.2015 11:20 <DIR> . 21.09.2015 11:20 <DIR> .. 21.09.2015 11:20 0 test.txt 1 файлов 0 байт 2 папок 29 492 412 416 байт свободно |
|||
5
Провинциальный 1сник
21.09.15
✎
11:22
|
А вот собственно командный файл test.cmd
--- set homedrive=c:\ set homepath=users\user echo %homedrive%%homepath% dir %homedrive%%homepath% |
|||
6
Smallrat
21.09.15
✎
11:23
|
тоже всё робит
|
|||
7
Vladal
21.09.15
✎
11:23
|
(1) echo c:\users\user отличается от echo %homepath%? не?
|
|||
8
Vladal
21.09.15
✎
11:23
|
(5) У меня не робит
|
|||
9
Vladal
21.09.15
✎
11:24
|
C:\Users\User>dir %homedrive%%homepath%
Том в устройстве C не имеет метки. Серийный номер тома: 8234-45A1 Содержимое папки C:\Users Файл не найден Содержимое папки C:\Users\User Файл не найден C:\Users\User> |
|||
10
Vladal
21.09.15
✎
11:26
|
ver выдаёт такую версию:
Microsoft Windows [Version 6.1.7601] а у вас? |
|||
11
Провинциальный 1сник
21.09.15
✎
11:26
|
Лучше скиньте фрагмент вашего cmd-файла, который не работает.
|
|||
12
Smallrat
21.09.15
✎
11:27
|
а если переименовать переменные?
|
|||
13
Провинциальный 1сник
21.09.15
✎
11:27
|
(10)
Microsoft Windows XP [Версия 5.1.2600] |
|||
14
Smallrat
21.09.15
✎
11:27
|
||||
15
Провинциальный 1сник
21.09.15
✎
11:28
|
И еще.. вы случайно не путаете интерактивную работу в ком.строке с работой командного файла? Доступ к переменным по разному реализован в этих вариантах.
|
|||
16
Vladal
21.09.15
✎
11:28
|
(11) Файл представлен в (2). Я захотел одной командой получить.
|
|||
17
Провинциальный 1сник
21.09.15
✎
11:29
|
(16) Не понял. Вы хотите одной командой присвоить значения переменным, а потом вызвать дир с этими переменными в качестве каталога?
|
|||
18
Smallrat
21.09.15
✎
11:29
|
переводчик MS жжёт:
перевёл "may not function as you intend" как "могут работать, как предполагается" в итоге получается весёлый текст: "После изменения одного или нескольких из следующих переменных среды, эти переменные могут работать как вам бы хотелось: HOMEDRIVE" |
|||
19
Vladal
21.09.15
✎
11:30
|
(15) Ну вот совсем другой разговор, а то ЧЯДНТ, ЧЯДНТ...
Возможно, из командного файла и будет так. Я пробовал интерактивно. В батнике одной строкой тоже не работает, собственно, из-за чего всё и началось. (17) Нет, они уже присвоены системой (виндой). Я для примера взял эти переменные как самый наглядный пример. |
|||
20
Vladal
21.09.15
✎
11:32
|
выходит, то, что я знаю со времен ДОС, в интерпретаторе Виндоуз 7 не работает. Или работает не так, как я предполагал.
|
|||
21
Провинциальный 1сник
21.09.15
✎
11:36
|
(20) dir "%homedrive%%homepath%"
|
|||
22
Vladal
21.09.15
✎
11:41
|
(21) ТОже пробовал. не работает. Эхо работает, в ДИР не хочет. Толкьо в батнике с присваиванием промежуточной переменной как в (2)
|
|||
23
Vladal
21.09.15
✎
11:41
|
(21) А нет. Работает. С кавычками работает, а без них нет.
Спасибо. Получилось. |
|||
24
Провинциальный 1сник
21.09.15
✎
11:50
|
(23) Если каталог пользователя без пробелов - то работает и без кавычек. Проверил сейчас на w7.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |