我希望使用动态破坏字符串;作为分隔符 C:\ ProgramData \ Oracle \ Java \ javapath; C:\ Program Files(x86)\ RSA SecurID Token Common; C:\ windows \ system32; C:\ windows; C:\ windows \ System32 \ Wbem; < / em>的
然后查找路径是否已存在。如果C:\ windows \ system32已经在字符串中,那么它应该引发一个标志。
请帮忙
答案 0 :(得分:1)
一个简单的 not bulletproof 方法可能如下所示:
@ECHO OFF
SET "FLAG="
FOR %%A IN ("%PATH:;=";"%") DO IF /I %%A=="%SystemRoot%\system32" SET "FLAG=T"
IF DEFINED FLAG ECHO The location exists as an entry in %%PATH%%
TIMEOUT -1
如果您没有;
或"
的路径,它将正常工作。
编辑
如果您不幸使用双引号输入条目,则可以使用稍微不同的方法,将每个分号替换为换行符:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "FLAG="
SET LF=^
%FLAG%
%FLAG%
FOR /F "DELIMS=" %%A IN ("%PATH:;=!LF!%"
) DO IF /I "%%A"=="%SystemRoot%\system32" SET "FLAG=T"
IF DEFINED FLAG ECHO The location exists as an entry in %%PATH%%
TIMEOUT -1
答案 1 :(得分:0)
补充先前的回答,也是
@echo off
setlocal EnableDelayedExpansion
for /F "delims=" %%a in (^"!path:^;^=^
% Do NOT remove this line %
!^") do IF /I "%%a"=="%SystemRoot%\system32" SET "FLAG=T"
IF DEFINED FLAG ECHO The location exists as an entry in %%PATH%%
这可以处理带引号的路径。