使用批处理文件迭代PATH

时间:2014-02-23 15:07:03

标签: batch-file for-loop

我想接受我的%PATH%并添加引号。换句话说,来自

C:\Program Files\a;C:\Program Files\b;C:\Program Files(x86)\c

"C:\Program Files\a";"C:\Program Files\b";"C:\Program Files(x86)\c"

原因当然是那些空间,但除此之外。我目前有:

@ECHO OFF

Setlocal EnableDelayedExpansion

FOR /f "tokens=1 delims=^; eol=¬" %%G IN ("%PATH%") DO @ECHO "%%G";

然而,这只是我的第一部分:

"C:\Program Files\a";

这是向正确方向迈出的一步,但如何让它提供所有其他方面呢?另外,如何将整个输出折叠成单个变量,以便将其传递给另一个命令?

2 个答案:

答案 0 :(得分:1)

@echo off
set "p=%path%"
set "p=%p:"=%"
set p="%p:;=";"%"
echo %p%

答案 1 :(得分:0)

试试这个:

@ECHO OFF &SETLOCAL disableDelayedExpansion
SET "dPath=C:\Program Files\a;C:\Program Files\b;C:\Program Files(x86)\c"
FOR %%a IN ("%dPath:;=";"%") DO ECHO(%%~a

输出:

C:\Program Files\a
C:\Program Files\b
C:\Program Files(x86)\c