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 Batch file可列出所有文件并将其中一个保存在循环变量中_Batch File - Fatal编程技术网

Batch file Batch file可列出所有文件并将其中一个保存在循环变量中

Batch file Batch file可列出所有文件并将其中一个保存在循环变量中,batch-file,Batch File,我正在寻找一个批处理文件,它将列出的一个文件保存为变量,然后继续获取有关它的一些信息,然后将其设置为已列出,然后列出所有其他文件,直到没有剩余文件。重要的是将%FILE%作为单个文件(例如:C:\folder\FILE.ext) 我试着这样做: @echo off :loop for %%x in (%dir%\*) do set FILE=%%x if %FILE%=%alreadyusedfile% goto loop goto scan :scan echo Now scanning %

我正在寻找一个批处理文件,它将列出的一个文件保存为变量,然后继续获取有关它的一些信息,然后将其设置为已列出,然后列出所有其他文件,直到没有剩余文件。重要的是将%FILE%作为单个文件(例如:C:\folder\FILE.ext) 我试着这样做:

@echo off
:loop
for %%x in (%dir%\*) do set FILE=%%x
if %FILE%=%alreadyusedfile% goto loop
goto scan

:scan
echo Now scanning %FILE%
(do some things here)
set alreadyusedfile=%alreadyusedfile% %FILE%
goto loop

但这似乎不起作用。有什么想法吗?

你需要在循环中处理文件,你有两个选择

使用CALL命令使代码像函数一样工作

@echo off
for %%x in (%dir%\*) do call :scan "%%x"
goto :eof

:scan
echo Now scanning "%~1"
(do some things here)
Goto :eof
或者在FOR构造中执行所有操作

@echo off
for %%x in (%dir%\*) do (
    echo Now scanning %%x
    do some things here
)

这回答了你的问题吗@如果他们都工作的话。如果第二组代码对您不起作用,那么您就更改了一些内容。“do此时出乎意料。”@rifteyy因为您没有向我们展示您尝试使用的所有代码,我甚至猜不出您尝试实现第二组代码的方式可能有什么问题。