我正在從 cmd(一個 .bat 腳本)內部運行一個 docker 命令。該命令看起來像
docker run --shm-size=1gb -it --privileged --name test p 8080:8080 -h test thom/test:latest
我想創建一個回圈,在呼叫此命令后等待某個字串出現,或者等待埠 (8080) 打開。字串是“Daemon started!”,輸出的時候想打開瀏覽器:
explorer "http://localhost:8080"
盡管沒有重新啟動 docker 命令,但我正在努力批量制作一個 while 回圈。這就是我迄今為止所擁有的。
:loop
timeout /t 5
(docker run --shm-size=1gb -it --privileged --name test p 8080:8080 -h test thom/test:latest | find "proxy Daemon started!") > nul 2>&1
if find "proxy Daemon started!" goto loop
echo I can go!
explorer "http://localhost:8080
uj5u.com熱心網友回復:
使用findstr和結果errorlevel來執行相應的操作,您還可以使用條件運算子&&,||如第二個示例所示:
@echo off
:loop
timeout /t 5
(docker run --shm-size=1gb -it --privileged --name test p 8080:8080 -h test thom/test:latest | findstr /R "proxy.*Daemon.*started")>nul 2>&1
if errorlevel 1 goto :loop
echo I can go!
explorer "http://localhost:8080"
或 Confitional 運算子用法:
:loop
timeout /t 5
(docker run --shm-size=1gb -it --privileged --name test p 8080:8080 -h test thom/test:latest | findstr /R "proxy.*Daemon.*started")>nul 2>&1 && explorer "http://localhost:8080" || goto :loop
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370623.html
標籤:码头工人 if 语句 批处理文件 指令 while 循环
下一篇:RuntimeWarning:DateTimeFieldModel.date在時區支持處于活動狀態時收到了一個天真的日期時間
