Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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_Cmd - Fatal编程技术网

Batch file 错误:"|&引用;此时出现意外的批处理脚本

Batch file 错误:"|&引用;此时出现意外的批处理脚本,batch-file,cmd,Batch File,Cmd,当我运行此脚本时,我收到 |在这个时候是出乎意料的 这是代码: @ECHO Off REM Mapeo de unidad U, path de usuario net use u: \\server\usuarios\%username% pause REM ***** Description group **** for /f %%i in ('net user %username% /domain | find /i /c Group') do set RESULT=%%i

当我运行此脚本时,我收到

|在这个时候是出乎意料的

这是代码:

@ECHO Off

REM Mapeo de unidad U, path de usuario

    net use u: \\server\usuarios\%username%
pause
REM  ***** Description group ****

for /f %%i in ('net user %username% /domain | find /i /c Group') do set RESULT=%%i

echo %RESULT%

pause   

for
语句中,
我使用了
,但我仍然出错。

您需要为
命令替换
中的管道字符。它应该是
^
批处理解析器必须先解析
for
中的条件,然后才能将其传递给In()子句作为一个可执行命令,并且由于管道在DOS中是一个特殊字符,因此需要在管道之前使用转义字符(^),以便在初始批处理解析期间保留它,如下所示:

for /f %%i in ('net user %username% /domain ^| find /i /c Group') do set RESULT=%%i

读取
for
命令行时,解析器会发现一个未包含在带引号的字符串中的管道字符。在这种情况下,解析器会解释有一个管道创建请求,而
for
命令行被一分为二以创建所指示的管道。但在这种情况下不需要这样做,管道不是
的一部分>for
命令。管道位于命令中,该命令将生成将由
for/f
命令读取的输出。为了向解析器发出信号,管道字符被转义。这样,解析器就不会尝试在管道字符处拆分
for
命令行。