【发布时间】:2022-01-07 15:57:56
【问题描述】:
有没有办法在批处理脚本的 if exists 命令中获取变量的值?
例如
@echo off
set fi=ab.txt
FOR /L %%i IN (0 1 2) DO (
set fi=a.txt
if exist %fi% (
echo do something
)
)
【问题讨论】:
-
一个变量显示为这样
%variablename%,而不是这样%%variablename,并且你的For /L循环写错了。请打开命令提示符窗口,输入for /?,然后按[ENTER]键,然后对set /?执行相同操作。 -
代码更正看起来不错,现在应该可以工作了,但是我看不出你的代码有什么意义。您的代码将在不到半秒的时间内执行。以三倍的速度检查文件有什么意义?
-
是的,之前的代码有效。但是我想在for循环期间更新fi变量,if条件失败
-
如果是这种情况,您需要启用延迟扩展,(使用
SetLocal EnableDelayedExpansion),并像这样扩展您的变量,!variablename!。
标签: batch-file batch-processing