Batch file 使用批处理文件在路径上迭代
我想使用我的%PATH%并在其中添加倒逗号。换句话说,从Batch file 使用批处理文件在路径上迭代,batch-file,for-loop,Batch File,For Loop,我想使用我的%PATH%并在其中添加倒逗号。换句话说,从 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;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";
这是朝着正确的方向迈出的一步,但我如何让它提供所有其他的呢?此外,如何将整个输出折叠成单个变量,以便将其传递给另一个命令?尝试以下操作:
@echo off
set "p=%path%"
set "p=%p:"=%"
set p="%p:;=";"%"
echo %p%
@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 C:\ProgramFiles\a C:\ProgramFiles\b C:\ProgramFiles(x86)\C
是的,比我快。或者,只需
回显“%PATH:;=”;“%”
@mbroshi现有引号需要删除,这是另一行。路径中可以已经有引号,并且必须满足这些引号的要求。@foxidrive是,而且路径
可以有分号:|感谢您的评论:)
C:\Program Files\a
C:\Program Files\b
C:\Program Files(x86)\c