gpt4 book ai didi

batch-file - 批处理文件 'for' 循环 - 多行

转载 作者:行者123 更新时间:2023-12-03 11:24:55 24 4
gpt4 key购买 nike

为什么以下几行可以在批处理文件中使用?

 for  %%a in ("C:\Test\*.txt") do set FileName=%%~a
echo Filename is: %FileName%

但这些不会?:
 for  %%a in ("C:\Test\*.txt") do (
set FileName=%%~a
echo Filename is: %FileName%
)

这就像“a”变量没有保留在第二行。这是为什么,我如何使用“a”的内容作为第二个例子?

最佳答案

这是因为括号之间的所有内容都作为一行加载。所以%FileName%在设置之前(在运行时)扩展(在加载时)。如果需要使用第二种格式,则需要启用延迟扩展。那么如果文件名包含 !,你就会遇到困难。 .如果文件名中没有括号,这将起作用。

 setlocal enabledelayedexpansion
for %%a in ("C:\Test\*.txt") do (
set FileName=%%~a
echo Filename is: !FileName!
)
endlocal

关于batch-file - 批处理文件 'for' 循环 - 多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19121138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com