【发布时间】:2018-05-13 02:54:29
【问题描述】:
我正在尝试使用文件夹中的批处理文件获取文件名,但它不起作用。
我遵循了 here 的指导方针,但由于某种原因,它根本没有返回任何东西!
FOR /F "tokens=*" %%G IN ('dir /b C:\Users\Desktop\UPD\*.txt') DO SET result=%%G
我也试过了:
FOR /F "tokens=*" %%G IN (dir /b C:\Users\Desktop\UPD\*.txt') DO SET _result=%%~G
echo %_result% >> %~dp0Outputfile.txt
我得到的是:
ECHO is on.
编辑
这是我目前所做的:
IF EXIST C:\Users\Nathanael\Desktop\UPD\*.txt (
echo file found >> %~dp0Outputfile.txt
chDIR C:\Users\Nathanael\Desktop\UPD\
dir *.txt /b >> %~dp0Outputfile.txt
FOR /F "tokens=*" %%G IN ('dir /b C:\Users\Nathanael\Desktop\UPD\*.txt') DO SET result=%%G
echo %result% >> %~dp0Outputfile.txt
)
输出是:
file found
NewVHD.txt
random.txt
ECHO is on.
【问题讨论】:
-
“结果”已经作为元变量输出,
%G,因此如果您在循环中使用该元变量而不是首先将其设置为局部变量和使用它,For /F %%G IN ("C:\Users\Nathanael\Desktop\UPD\*.txt") Do (Echo %%G)>>"%~dp0OutputFile"。但你不只是回显到一个文件,是吗?因为您已经知道,Dir /B "C:\Users\Nathanael\Desktop\UPD\*.txt">"%~dp0OutputFile"可以做到这一点。如果您向我们展示您打算使用%result%做什么会更好,以便可以相应地定制解决方案。
标签: batch-file variables for-loop echo