Windows for循环命令中的%f是什么?

Windows for循环命令中的%f是什么?,windows,batch-file,batch-rename,Windows,Batch File,Batch Rename,从这个例子就在这里。 对于(*.doc*.txt)中的%f,请键入%f 在前面的示例中,当前目录中扩展名为.doc或.txt的每个文件都将替换为%f变量,直到显示每个文件的内容为止。若要在批处理文件中使用此命令,请将每次出现的%f替换为%%f。否则,将忽略该变量并显示错误消息 这些变量与本例中的变量不同吗 这些叫什么?如何操作它们?在批处理脚本俚语中,它被称为循环令牌的,以上示例仅在命令提示符下有效。对于批处理文件,您需要双% 这些标记在for循环的每次迭代中更改其值。示例(可在命令提示符下

从这个例子就在这里。

对于(*.doc*.txt)中的%f,请键入%f

在前面的示例中,当前目录中扩展名为.doc或.txt的每个文件都将替换为%f变量,直到显示每个文件的内容为止。若要在批处理文件中使用此命令,请将每次出现的%f替换为%%f。否则,将忽略该变量并显示错误消息

这些变量与本例中的变量不同吗


这些叫什么?如何操作它们?

在批处理脚本俚语中,它被称为循环令牌的
以上示例仅在命令提示符下有效。对于批处理文件,您需要双
%

这些标记在for循环的每次迭代中更改其值。示例(可在命令提示符下执行):

这将有两次迭代-在第一次迭代中,如果
%%a
标记的值为1,则在第二次迭代中为2

您可以使用for循环读取文件(带/f开关且无引号)、迭代文件(带/d开关)或目录、迭代字符串(同样不带开关,但无法在字符串中使用通配符)读取文件(带/f开关且无引号)或处理字符串(同样带/f)

您还可以使用“delims”选项拆分每个迭代的值,然后您将需要更多的连续字母:

for /f "tokens=1,2 delims=-" %a in ("1-2-3") do @echo %a:%b
这将按
-
拆分引号中的字符串,并将使用
%a
%b
标记可访问的第一部分和第二部分

有关循环的详细信息:


%var%
是一个“环境变量”。它在任何地方(“全局”)都有效,直到您明确销毁它(通过取消定义它或通过
endlocal
,如果它是在
setlocal
之后定义的)
%f
是一个“for变量”或“loop变量”(我还听说了术语“Metavariable”)。它仅在
for
循环中有效,在
for
循环结束后没有意义。使用
set
命令操作环境变量(请参见
set/?
),对于变量,有“修饰符”(请参见
for/?
)@Stephan for变量如何工作?%f和%g之间有区别吗?这是我能操纵的吗?是否有我可以阅读更多的页面?当然,这里有
for/?
,但您也可以访问(查找以
for
开头的三个链接)。它的可读性更好,甚至更具描述性。您可以粗略地将其与其他语言中的运行时变量进行比较(
for$x=1到5 do
)。编辑:Npocmakas的答案很好地总结了它。
for %a in (1 2) do @echo %a
for /f "tokens=1,2 delims=-" %a in ("1-2-3") do @echo %a:%b