在PowerShell中将单行.CGI内容转换为多行格式
解决PowerShell获取CGI播放列表内容分行问题
直接对Invoke-WebRequest返回的内容按换行符拆分即可,无需导出再导入文件,具体步骤如下:
1. 获取网页内容并拆分行
浏览器看到的分行本质是源码中包含\n或\r\n换行符,PowerShell的Invoke-WebRequest只是将这些内容以字符串形式返回,并没有自动拆分。用-split运算符可以快速将字符串拆分为行数组:
# 替换为你的CGI文件URL $cgiUrl = "http://your-target-url/playlist.cgi" $webResponse = Invoke-WebRequest -Uri $cgiUrl # 拆分所有行,兼容Windows(\r\n)和Unix(\n)换行格式 $playlistRows = $webResponse.Content -split "`r?`n"
2. 筛选特定行
拆分后的$playlistRows是数组,直接用Select-Object的-Skip和-First参数筛选即可:
# 示例:获取第4、5行(对应浏览器展示的第4、5首曲目) # Skip 3表示跳过前3行(数组索引从0开始),First 2表示取接下来的2行 $targetTracks = $playlistRows | Select-Object -Skip 3 -First 2
3. 可选:过滤空行
如果CGI返回的内容包含多余空行,可先过滤再筛选:
$playlistRows = $webResponse.Content -split "`r?`n" | Where-Object { $_ -trim() -ne "" }
内容的提问来源于stack exchange,提问作者UniqueTurbo
相关产品推荐
相关产品推荐

