2014-05-16 109 views
0

我想创建一个批处理文件,将某些值发送到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的语句不会立即返回一个值 - 直到用户执行的Android设备上有一定作用。所以我需要围绕“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 

回答

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

它只是清除变量并不断循环,直到它在它

0

在这里你去(虽然MC ND的回答看起来也不错)得到的任何值: 请注意管道需要进行转义我加了1秒等待ping -n 1 -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