在 Windows 10 中,我需要在文件夹中的子文件夹名称上进行批处理,我做了以下操作,但问题是 %%我不管理带空格的文件夹名称,它只需要第一部分:
@echo off
FOR /F %%I IN ('dir /b C:\Users\Thomas\Music') DO (
ECHO %%I)
如果文件夹“Music”包含文件夹“My music”,则 echo %%I 将只打印“My”。
最佳答案
FOR /F "delims=" %%I IN ('dir /b /ad C:\Users\Thomas\Music') DO (
... 并在要使用名称包含空格的地方使用 "%%I"
(即引用构造的字符串)——适用于任何批处理使用包含分隔符的字符串的原则像空间
/ad
选择目录名而不是文件名。
再添加一个开关,/s
将扫描整个子目录树。
将字符串值赋给变量最好用
set "var=%variablefrom%"
或者对于元变量(例如代码中的循环控制变量%%I
),您需要
set "var=%%I"
但是,如果您想在循环中使用分配给变量 (var
) 的值,您应该调查延迟扩展
(这里有很多项目)的主题。
关于windows - Windows 批处理中的 %%I 不管理带空格的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39697872/