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
命令行。