Batch file 将txt文件中的行读入.csv
我有一个使用ffmpeg通过批处理文件创建的.TXT文件。它返回以下信息(更多但试图简短) TXT文件会返回上面的3个文件。我只想使用上面的一些信息,然后我想创建一个.CSV文件,这样我就可以加载到.XLS文件中 我使用了以下内容,非常接近:Batch file 将txt文件中的行读入.csv,batch-file,csv,ffmpeg,Batch File,Csv,Ffmpeg,我有一个使用ffmpeg通过批处理文件创建的.TXT文件。它返回以下信息(更多但试图简短) TXT文件会返回上面的3个文件。我只想使用上面的一些信息,然后我想创建一个.CSV文件,这样我就可以加载到.XLS文件中 我使用了以下内容,非常接近: REM now lets get info we need from result.txt pause REM checks how many times finds genre and loops that many times FOR /f "de
REM now lets get info we need from result.txt
pause
REM checks how many times finds genre and loops that many times
FOR /f "delims=" %%b IN ('findstr "genre" result.txt') DO (
for %%f in (result.txt) do (
set i=0
for /F "delims= tokens=2,3*" %%l in (%%f) do (
set /A i+=1
set line!i!=%%l
)
echo !line9!, !line6!, !line8!, >> result.csv
)
)
pause
这将带来以下内容:
title=IRWX_TV_Vol_01_1_Pt_4 , genre=sport, episode_id=0101
title=IRWX_TV_Vol_01_1_Pt_4 , genre=sport, episode_id=0101
title=IRWX_TV_Vol_01_1_Pt_4 , genre=sport, episode_id=0101
仅显示.TXT文件中的第一个视频标题,而不是每个视频标题
我希望它能像这样回来:
IRWX_TV_Vol_01_1_Pt_4,sport,0101
减去上面的变量“=”和空格
我已经一遍又一遍地尝试不同的事情,但它就是不起作用
希望这里有人能看到这个问题并提供帮助,谢谢,我相信在批处理文件中有一种方法可以做到这一点,但由于没有任何批处理文件神参与进来,我提供了一个VBSCript替代方案-我个人认为VBSCript可能更容易。总之,我根据你最初的问题做出了假设:
IRWX_TV_Vol_01_1_Pt_4,sport,0101
C:\Directoryname\path>cscript results.vbs
流量:
只需使用内置的
数组
:
@ECHO OFF &SETLOCAL enabledelayedexpansion
for /f "tokens=1*delims==" %%a in (result.txt) do (
if "%%a"=="major_brand" set /a varcnt+=1
set "%%a!varcnt!=%%b"
)
for /l %%a in (1 1 %varcnt%) do echo(!title%%a!,!genre%%a!,!episode_id%%a!
另一种方式:
@echo off&cls
setlocal EnableDelayedExpansion
for /f "delims=" %%a in (result.txt) do (
set $test=%%a
set %%a
if /i "!$test:~0,10!"=="episode_id" echo !title!, !genre!, !episode_id!)
endlocal
这些解决方案假设所有实例都存在这三个值 假设您的文件中没有
!
字符:
@echo off
setlocal enableDelayedExpansion
>result.csv (
for /f "tokens=1* delims==" %%A in (result.txt) do (
set "%%A=%%B"
if %%A equ episode_id echo !title!,!genre!,!episode_id!
)
)
@echo off
setlocal disableDelayedExpansion
>result.csv (
for /f "tokens=1* delims==" %%A in (result.txt) do (
set "%%A=%%B"
if %%A equ episode_id (
setlocal enableDelayedExpansion
echo !title!,!genre!,!episode_id!
endlocal
)
)
)
如果您确实需要担心文件中的!
:
@echo off
setlocal enableDelayedExpansion
>result.csv (
for /f "tokens=1* delims==" %%A in (result.txt) do (
set "%%A=%%B"
if %%A equ episode_id echo !title!,!genre!,!episode_id!
)
)
@echo off
setlocal disableDelayedExpansion
>result.csv (
for /f "tokens=1* delims==" %%A in (result.txt) do (
set "%%A=%%B"
if %%A equ episode_id (
setlocal enableDelayedExpansion
echo !title!,!genre!,!episode_id!
endlocal
)
)
)
谢谢你的问题,我从来没有用vbscript做过任何事情,我会尝试一下,我真的希望有一个.bat文件,这样我也可以用它来制作和.exe文件,用这种语言可以吗?明天早上就可以了!我明白了。你可以试着用source forge的HtwoO将它转换成一个exe文件,即使它说的是python,我想dly也有vbscript。vbscript下载的链接是,如果您单独处理每个日志部分,而不是一次处理3组日志部分,这尤其容易。批处理文件是否允许您在两个文件之间处理日志,以便一次只处理一组信息?这很好,但我如何在第一时间消除空间每一个都结束了吗?