Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 检查变量是否包含逗号,但不显示变量值_Batch File - Fatal编程技术网

Batch file 检查变量是否包含逗号,但不显示变量值

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%的值。我不希望显示该值 @

我正试图创建一个批处理脚本,根据所讨论的变量是否包含“,”逗号而不显示变量值来执行if-else语句

我有一个变量%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。正如前面提到的,您做得正确,所以我猜您没有提供一个?