Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
For loop for/f循环未设置多个变量_For Loop_Batch File - Fatal编程技术网

For loop for/f循环未设置多个变量

For loop for/f循环未设置多个变量,for-loop,batch-file,For Loop,Batch File,我试图浏览以数字开头的文件,并将其设置为两个不同的变量 除了最后一部分,我在下面所做的大部分工作都是有效的,即尝试设置%file!num!% for /R %logs% %%F IN (%S%*.txt) DO ( for /f "tokens=10 delims=\" %%N IN ("%%F") DO ( set /a "num+=1" echo !num!. %%N set "file!num!=%%F" ) ) %%F是文件的完整文件路径 %%N

我试图浏览以数字开头的文件,并将其设置为两个不同的变量 除了最后一部分,我在下面所做的大部分工作都是有效的,即尝试设置%file!num!%

for /R %logs% %%F IN (%S%*.txt) DO (
    for /f "tokens=10 delims=\" %%N IN ("%%F") DO (
    set /a "num+=1"
    echo !num!. %%N
    set "file!num!=%%F"
    )
)
%%F是文件的完整文件路径

%%N只是文件名


我想将文件路径%%F设置为%file!num!%要将其设置为file2或w/e number,它是

,我从另一个示例中选取了您的代码,并将其与此问题中的代码结合起来

我相信这就是你试图做的

@ECHO OFF
setlocal enabledelayedexpansion
SET "S=Foobar"
SET "num=0"
SET "logs=C:\some path"
for /R "%logs%" %%F IN (%S%*.txt) DO (
    set /a "num+=1"
    echo !num!. %%~nxF
    set "file!num!=%%F"
)

set "choice="
set /p choice="Select File Number, or no to exit: "

if /I "%choice%"=="no" (
    goto cleanup
) else (
    start "" "!file%choice%!"
    pause
)

:cleanup

这回答了你的问题吗?您不需要另一个
FOR
命令来获取文件名。阅读
for
命令的帮助。有专门的
变量修饰符来解析文件路径和文件名。除此之外,只要启用了延迟扩展,代码就应该可以工作。