Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 尽管启用了EnableDelayedExpansion,但未在for循环中分配变量_Batch File_For Loop_Return Value - Fatal编程技术网

Batch file 尽管启用了EnableDelayedExpansion,但未在for循环中分配变量

Batch file 尽管启用了EnableDelayedExpansion,但未在for循环中分配变量,batch-file,for-loop,return-value,Batch File,For Loop,Return Value,我有下面的批处理脚本,应该可以动态生成文件名。不幸的是,我无法让函数为filename指定返回值。每个回音返回一条空行 @echo off setlocal EnableDelayedExpansion for /l %%i in (0,1,1) do ( call :create_filename %%i filename echo(!%filename%! ) pause :create_filename set "base=My test file" i

我有下面的批处理脚本,应该可以动态生成文件名。不幸的是,我无法让函数为
filename
指定返回值。每个回音返回一条空行

@echo off
setlocal EnableDelayedExpansion

for /l %%i in (0,1,1) do (
    call :create_filename %%i filename
    echo(!%filename%!
)
pause

:create_filename
    set "base=My test file"
    if %1 GTR 0 set "base=%base% (%1)"
    set "%~2=%base%.txt"
GOTO :eof

使用延迟变量需要使用
引用它们!瓦尔语法,而不是%Var%语法<代码>%Var%
在读取时保持展开状态<代码>!瓦尔在执行时展开
Set DelayedExpansion
只需打开对
的支持!瓦尔

该死。这么简单。谢谢