批次:FOR / R不具有可变的路径工作 [英] Batch: FOR /R doesn't work with a variable in the path

查看:118
本文介绍了批次:FOR / R不具有可变的路径工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一个例子:

FOR %%i IN (3) DO (
    ECHO %%i
    FOR /R "C:\backup\server%%i\temp" %%? IN (*.bak) DO (
        REM some code...
    )
)

ECHO 的结果: 3

第二 FOR 结果:不执行code

但随着

FOR %%i IN (3) DO (
    ECHO %%i
    FOR /R "C:\backup\server3\temp" %%? IN (*.bak) DO (
        REM some code...
    )
)

ECHO 的结果: 3

第二 FOR 结果:执行code

任何想法?

推荐答案

唯一能做的我已经找到了:

Only solution i've found:

FOR %%i IN (3) DO (
    PUSHD "C:\backup\server%%i\temp"
    FOR /R %%g IN (*.bak) DO (
        REM some code...
    )
    POPD
)

文件: http://ss64.com/nt/for_r.html

如果在[盘符:]路径没有指定,他们将默认为当前
  驱动器:路径

If the [drive:]path are not specified they will default to the current drive:path.

编辑:我加入 PUSHD / POPD dbenham被应答后。多亏了他。

I added PUSHD/POPD after dbenham is answered. Thanks to him.

这篇关于批次:FOR / R不具有可变的路径工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆