do set命令中带空格的文件名

时间:2017-12-12 16:19:27

标签: windows batch-file

道歉,因为我是新人,可能会问一个明显的问题。

echo @off

echo starting load of West One Data Extract v1g

FOR /F %%I IN ('DIR \\<server name>\Data\Servicing\Data\abc*.* /B /O:D') DO SET NEWEST_FILE_1=%%I

echo Uploading "%NEWEST_FILE_1%"

由于文件名是“abc 123.xls”,输出echo是“upload abc”

如果我运行DIR \\<server name>\Data\Servicing\Data\abc*.* /B /O:D它运行正常并导致“abc 123.xls”

关于如何更改代码以接受文件名中的空格,请帮忙。

1 个答案:

答案 0 :(得分:0)

默认情况下,FOR /F命令将解析命令的输出,并根据默认分隔符将其拆分为令牌。这在FOR命令的帮助文件中进行了解释。因此,您需要使用DELIMS选项告诉它不要使用任何分隔符。

FOR /F "delims=" %%I IN ('DIR \\<server name>\Data\Servicing\Data\abc*.* /B /O:D') DO SET "NEWEST_FILE_1=%%I"