docker – 通过Windows bat文件组成?

我试图编写一个Windows .bat文件来自动设置我的Docker环境。 我唯一的问题似乎是打破脚本的“FOR”循环行,当然,永远不会到docker组成。 倒数第二行与docker机器输出提供的完全相同,并且可以通过粘贴到CMD而没有问题的情况下运行。 有没有一些原因,它不会通过.bat工作?

@echo off docker-machine start docker-machine ip > hostname.txt set /p REN_RT_EXTERNAL_IP=<hostname.txt del hostname.txt echo Host-ip: %REN_RT_EXTERNAL_IP% @FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i call docker-compose up 

抛出的错误是:“此时我意外。”

当直接在shell中运行FOR循环(没有脚本)时,你应该可以使用下面的代码 – 用@%ireplace@%i %i

 FOR /f "tokens=*" %i IN ('docker-machine env') DO %i 

由于您正在.bat文件中运行此,您必须使用双百分号来转义variables,如下所示:

 FOR /f "tokens=*" %%i IN ('docker-machine env') DO %%i 

参考: https : //github.com/docker/machine/issues/3023