Batch file 循环直到变量!=&引用&引用;

Batch file 循环直到变量!=&引用&引用;,batch-file,while-loop,adb,dos,Batch File,While Loop,Adb,Dos,我想创建一个批处理文件,将某些值发送到output.txt。我有以下代码: for /F "delims=" %%a in ('adb logcat -v threadtime | grep -m 1 'VAC: App Name is:'') do set appName=%%a echo App Name= %appName% > output.txt 问题是grep语句不会立即返回值——直到用户在安卓设备上执行某个操作。所以我需要围绕“for”语句创建一个循环。我将在下面尝试一下

我想创建一个批处理文件,将某些值发送到output.txt。我有以下代码:

for /F "delims=" %%a in ('adb logcat -v threadtime | grep -m 1 'VAC: App Name is:'') do set appName=%%a

echo App Name= %appName% > output.txt
问题是grep语句不会立即返回值——直到用户在安卓设备上执行某个操作。所以我需要围绕“for”语句创建一个循环。我将在下面尝试一下,但我知道这是错误的

do
while 
%appName% = ""
    for /F "delims=" %%a in ('adb logcat -v threadtime | grep -m 1 'VAC: App Name is:'') do set appName=%%a

    if "%appName% != "" leave
enddo

echo App Name= %appName% > output.txt
它只是清除变量并保持循环,直到它得到其中的任何值(尽管MC ND的答案看起来也不错): 请注意,管道需要通过插入符号转义,我添加了1秒等待
ping-n1-w 1000 1.1.1.1>nul

:while_loop
for /F "usebackq delims=" %%a in (`adb logcat -v threadtime ^| grep -m 1 'VAC: App Name is:'`) do set appName=%%a
ping -n 1 -w 1000 1.1.1.1 >nul
if not "%appName% == "" goto exit_loop
goto while_loop


:exit_loop
echo App Name= %appName% > output.txt
:while_loop
for /F "usebackq delims=" %%a in (`adb logcat -v threadtime ^| grep -m 1 'VAC: App Name is:'`) do set appName=%%a
ping -n 1 -w 1000 1.1.1.1 >nul
if not "%appName% == "" goto exit_loop
goto while_loop


:exit_loop
echo App Name= %appName% > output.txt