Batch file 检查变量是否包含逗号,但不显示变量值
我正试图创建一个批处理脚本,根据所讨论的变量是否包含“,”逗号而不显示变量值来执行if-else语句 我有一个变量%PATHTMP%,它可能是两个值之一=Batch file 检查变量是否包含逗号,但不显示变量值,batch-file,Batch File,我正试图创建一个批处理脚本,根据所讨论的变量是否包含“,”逗号而不显示变量值来执行if-else语句 我有一个变量%PATHTMP%,它可能是两个值之一= " RS_Path = c:\data\RV\R\" " RS_Path = c:\data\RV\RS\,C:\data\RV2\RS2" 我想确定是否有逗号,因为这将允许我确定变量中是否有两条路径 下面将介绍如何实现这一点,但是,如果不存在“,”,它将在命令行窗口中显示%PATHTMP%的值。我不希望显示该值 @
" RS_Path = c:\data\RV\R\"
" RS_Path = c:\data\RV\RS\,C:\data\RV2\RS2"
我想确定是否有逗号,因为这将允许我确定变量中是否有两条路径
下面将介绍如何实现这一点,但是,如果不存在“,”,它将在命令行窗口中显示%PATHTMP%的值。我不希望显示该值
@echo off
echo.%PATHTMP%|findstr /C:"," >nul 2>&1
if not errorlevel 1 (
echo Comma , found
) else (
echo Comma , not found
)
问题在于,如果不存在逗号,则下一行显示值
echo.%PATHTMP%|findstr /C:"," >nul 2>&1
如果没有逗号,请告诉我如何抑制此行中的变量值。我尝试过使用>NUL2>nul,但没有成功。或者,如何在不在命令行中显示变量值的情况下,使用所述的if-else重新写入以获得相同的结果。显示命令行并不重要,因为我在命令行中显示此命令之前和之后的用户参考信息,因此最小化或隐藏命令行窗口不是一个选项
谢谢另一种检查方法是尝试从字符串中删除逗号,以查看变量是否仍然等于自身
IF NOT "%PATHTMP:,=%"=="%PATHTMP%" echo comma found
您正确地抑制了stdout和stderr。正如前面提到的,您做得正确,所以我猜您没有提供一个?