批处理代码:使用.txt文件内容作为文件标题

时间:2014-10-14 09:28:24

标签: windows batch-file cmd

我正在尝试创建一个开始录制视频的批处理文件(通过VLC)并将视频文件保存在桌面上,标题为日期和时间,以及当前用户的ID号,保存在一个名为“currentsubjectinfo.txt”的文本文件中。这是我到目前为止所做的:

"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"--qt-start-minimized dshow://--sout=#transcode{vcodec=mp2v,vb=1024,fps=30,width=1280,acodec=mp2a,ab=128,scale=1,channels=2,deinterlace,audio-sync}:standard{access=file,mux=ps,dst="C:\Users\User\Desktop\\subj-%date:~10,4%%date:~4,2%%date:~7,2%-%time:~0,2%%time:~3,2%%time:~6,2%.mp4"}

除了在文件标题中包含ID号之外,我还需要它,因为我无法弄清楚如何让批处理从文本文件中获取必要的信息。所以现在,该文件保存在“subj-20141013-165213”之类的标题下。我希望它改为“subj1985-20141013-165213”

具有用户ID号(currentsubjectinfo.txt)的文本文件位于包含以下信息和格式的文本文件中:

Subject   1985
Condition 1

有没有办法让它只从该文件中检索“1985”并在文件标题中使用它?感谢。

1 个答案:

答案 0 :(得分:0)

<"currentsubjectinfo.txt" set /p "subjectID=" 
for %%a in (%subjectID%) do set "subjectID=%%a"
echo %subjectID%

将文件中的第一行读入变量,并将变量中的每个值存储到同一变量中。

更详细但更可靠的方式

for /f "tokens=2" %%a in ('
    find "Subject" ^< "currentsubjectinfo.txt"
') do set "subjectID=%%~a"

echo %subjectID%

执行find命令搜索文件中的所需行,并将行中的第二行检索到变量