Windows 批处理以将带有空格的文件名分配给变量

Windows 批处理以将带有空格的文件名分配给变量,windows,variables,batch-file,scripting,Windows,Variables,Batch File,Scripting,如果这个问题已经得到回答,我会向你道歉,但我已经找了一个星期来解决这个问题,但没有结果。我正在尝试创建一个批处理文件,该文件在文件夹中查找特定的文件ext(只有一个文件ext),将该文件的名称指定给一个变量,然后根据变量名将该文件重命名为新名称 到目前为止,我所拥有的: for /F %%x in ('dir /b *.html') do set "FileName=%%x" echo %FileName% ren %FileName% test.html 因为每个文件名中都有空格,所以此解决

如果这个问题已经得到回答,我会向你道歉,但我已经找了一个星期来解决这个问题,但没有结果。我正在尝试创建一个批处理文件,该文件在文件夹中查找特定的文件ext(只有一个文件ext),将该文件的名称指定给一个变量,然后根据变量名将该文件重命名为新名称

到目前为止,我所拥有的:

for /F %%x in ('dir /b *.html') do set "FileName=%%x"
echo %FileName%
ren %FileName% test.html
因为每个文件名中都有空格,所以此解决方案只会将文件名的第一个字分配给
%filename%
,因此重命名行将不起作用,因为它在
.html
文件夹中找不到文件名

我的问题是,如何给变量分配一个带有空格的名称

再次道歉,如果这个问题已经得到了回答,我真的找不到任何地方,尽管这是一个常见的问题

任何帮助都会很好

谢谢

for /F "delims=" %%x in ('dir /b *.html') do set "FileName=%%x"
echo "%FileName%"
ren "%FileName%" "test.html"


通过提示获取更多信息。

似乎您可以简单地使用(*.html)中%%x的
完成所需的操作。do set filename=%%x
。对于重命名,只需将其置于引号中:
ren“%filename%”test.html
for /?