首页 > 解决方案 > 在 Windows 批处理文件中按换行符拆分

问题描述

%data%在 Windows 批处理文件中有一个变量,其中包含以下格式的变量信息:

URL_A
TEXT
URL_B

所以本质上,三个字符串由两个newline字符分隔。每个字符串的长度在每次运行时都不同。我需要将这三行分成三个单独的变量。该FOR命令似乎很有希望,但似乎没有办法newline为选项指定分隔符delim=

编辑(根据@Compo 的要求):

这是批处理文件的语法:

play_vid.bat -stream <VID_HEIGHT> <START-TIME> <URL>

%data%这是在我的批处理文件中生成变量的命令(需要youtube-dl安装在%PATH%环境变量中才能工作):

FOR /F "skip=1 delims=" %%a IN ('youtube-dl --get-title -g -f "bestvideo[height<=%2][fps<=30],worstaudio" --no-playlist "%4"') DO @set data=%%a

这是一个示例命令,其中解析了所有批处理变量,以便可以直接从 cmd 运行它来测试和查看%data%变量的内容:

FOR /F "skip=1 delims=" %a IN ('youtube-dl --get-title -g -f "bestvideo[height<=1080][fps<=30],worstaudio" --no-playlist "https://www.youtube.com/watch?v=ltynWs_LtIw"') DO @echo %a

对于此特定示例,%data%将包含:

https://manifest.googlevideo.com/api/manifest/dash/expire/1592941694/ei/HgjyXvilD4ndwQG3nrzoBg/ip/[redacted]
How To Stabilize GoPro Video for Free with FFMPEG
https://manifest.googlevideo.com/api/manifest/dash/expire/1592941694/ei/HgjyXvilD4ndwQG3nrzoBg/ip/[redacted]

那是,

line 1: The URL of the video (DASH) stream.
line 2: The title of the video.
line 3: The URL of the audio (DASH) stream.

标签: windowsbatch-filecmd

解决方案


不知道你是不是这个意思?

@echo off
<test.txt (
    set /p Var1= 
    set /p Var2=
    set /p Var3=
)
echo Var1=%Var1%
echo Var2=%Var2%
echo Var3=%Var3%
pause

推荐阅读