我有一个文本文件RECORDS
,其中包含从physionet
网站获取一系列记录文件的地址列表:
Person_01/rec_1
Person_01/rec_2
.
.
.
Person_90/rec_1
Person_90/rec_2
我需要对以下每行文本文件执行如下命令:
wfdb2mat -r rec_1 -f 0 -t 20 > rec_1m.info
在这里,wfdb2mat
是 Windows 中用于将 .dat
数据结构转换为 MATLAB
中已知的 .mat
结构的命令。该命令执行的输出报告存储在与 RECORDS
行相同的目录中,文件名为 .info
。
我编写了一个批处理文件(convert.bat)如下:
@echo off
for /f %%a in (RECORDS) do (wfdb2mat -r %%~a -f 0 -t 20 > %%~am.info)
要将列在
RECORDS
中的所有文件转换为新格式。但不幸的是,还有两个文件命名为.mat
和.hea
存储在与convert.batch
相同的目录中,并命名为rec_Xm.mat
和rec_Xm.hea
,其中X是在RECORDS
中列出的记录号。因此,我需要在for循环中添加一个额外的命令,将那些文件移动到名为
RECORDS
的文件夹中的正确位置。
我的批处理文件已更改为:@echo off
for /f %%a in (RECORDS) do (wfdb2mat -r %%~a -f 0 -t 20 > %%~am.info & move rec_*.* %%~a)
问题在于
%%~a
包含文件夹名称和文件名,例如Person1/rec_1
,我只需要文件夹名称来移动这些文件。
我该如何分割这些字符串,以便可以在每个循环迭代中提取文件夹名称?
%%~nxa
应该会给你rec_1
,而%%~dpa
应该会给你Person1/
。但是你可以使用Tokens 1-2
和Delims=/
,并使用%%a
表示Person1
,%%b
表示rec_1
。 - Compo