在 FOR 循环中将百分号用作命令时如何转义百分号?
How to escape percent symbol when using it as a command in a FOR loop?
我正在尝试使用 de git log 命令结果作为 for 循环的输入,但似乎不可能!我已经尝试使用 %%、^%、%%%、^%^%、enableDelayedExpansion 和其他:
@echo off
for /f %%s in ('git log --reverse --format=%h') do (
echo git pull
echo git reset --hard %%s
pause
)
我需要的git命令是:git log --reverse --format=%h
问题是“%h”在 for 中不起作用。例如,当我使用 git log --reverse
时,它起作用了。
for /f %%s in ('git log --reverse --format^=%%h') do (
应该可以解决你的问题。
您可以定义格式变量
set "format=--format=%%h"
for /f %%s in ('git log --reverse %%format%%') do (
这样它甚至可以处理更复杂的格式,例如 %cd%H
(提交者日期和散列)
set "format=--format=%%cd%%H"
for /f %%s in ('git log --reverse %%format%%') do (
我正在尝试使用 de git log 命令结果作为 for 循环的输入,但似乎不可能!我已经尝试使用 %%、^%、%%%、^%^%、enableDelayedExpansion 和其他:
@echo off
for /f %%s in ('git log --reverse --format=%h') do (
echo git pull
echo git reset --hard %%s
pause
)
我需要的git命令是:git log --reverse --format=%h
问题是“%h”在 for 中不起作用。例如,当我使用 git log --reverse
时,它起作用了。
for /f %%s in ('git log --reverse --format^=%%h') do (
应该可以解决你的问题。
您可以定义格式变量
set "format=--format=%%h"
for /f %%s in ('git log --reverse %%format%%') do (
这样它甚至可以处理更复杂的格式,例如 %cd%H
(提交者日期和散列)
set "format=--format=%%cd%%H"
for /f %%s in ('git log --reverse %%format%%') do (