上午,
我想从目录中读取所有文件夹名称,然后将此名称的一部分提取到文本文件中。
E.g。
Folder \ users \ music包含以下文件夹: Tes125559-blah345534 tes125558-blah235235
我想提取3个字符,直到 - ,所以对于Tes125559-blah345534我只需将125559放入文本文件。
它总是3个字符,然后需要抓取
的6位数字值非常感谢任何帮助,到目前为止我只阅读目录:
dir / b> file.txt的
答案 0 :(得分:1)
以下内容应该可以解决问题:
@echo off
setlocal enabledelayedexpansion
if exist file.txt del file.txt
for /d %%a in (*) do (
set DIR=%%a
echo !DIR:~3,6!>>file.txt
)
for
循环遍历所有目录(在当前目录中)。对于每一个,它将目录名称存储在DIR
中,然后使用"子字符串"从第四个开始提取六个字符的语法(3
是因为它从零开始计算 - 有关详细信息,请参阅SET /?
。)
在此构造周围使用!
(以及脚本顶部的enabledelayedexpansion
)是因为引用环境变量(使用%
)的常规方式不会重新每次围绕%DIR%
循环评估for
的值(有关详情,请参阅cmd /?
)。
因为每个目录都附加到file.txt
,我们会在开始之前将其删除(如果存在)。