2014-05-16 85 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