2013-06-26 1 views
0

Я хотел бы просмотреть каждый элемент в одной строке, которые определены в переменной окружения% PATH%. Я использовал следующиеВозврат каждого элемента в одной строке, определенной в% PATH% через командную строку Windows

for %A in ("%path:;=" "%") do @echo %A 

Он возвращает каждый элемент в одной строке, но двойные кавычки вокруг них, как показано ниже.

"C:\Windows\System32" 
"C:\Windows\system32\Wbem" 
"C:\Windows\System32\WindowsPowerShell\v1.0\" 

Как распечатать их без двойных кавычек? Я пробовал использовать одинарные кавычки в команде, но не мог понять это правильно. (Есть пробелы в путях в некоторых заходы в% PATH%)

+0

Возможный дубликат ['Довольно печатать' окна% PATH% variable - как разделить на ';' в оболочке CMD] (http://stackoverflow.com/questions/5471556/pretty-print-windows-path-variable-how-to-split-on-in-cmd-shell) – dbenham

ответ

3
ECHO %path:;=&ECHO(% 

:) :)


Edit для расширения.

Синтаксис %var:string1=string2% заменяет все string1 с string2 в пределах var, следовательно, эта команда разрешена к

echo directory1&echo(directory2&echo(directory3... 

на каждом ;, который является сепаратором, используемым между directorynames в %path%.

echo( - это трюковая конструкция. Есть много символов, которые игнорируются в той или иной степени ПРЯМО после echo. SPACE является наиболее распространенным, но команда ECHO покажет состояние ECHO - ECHO is on/off. ECHO( ничего не покажет (кроме символов, следующих за ().

Как это происходит, мои path концов с ; так, если бы я должен был использовать &echo заменить ; тогда линия будет решена в ....echo dirlast&echo и производить ECHO состояния последней линии. Использование echo( аккуратно преодолевает эту проблему.

+0

Спасибо. Это сработало. Не могли бы вы объяснить команду? – ontherocks

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

  • Нет связанных вопросов^_^