如果您有一个file.txt
包含多行文本的文本文件,例如
asd asd
asdasd asdasd
如何选择要刮掉第 2 行asdasd asdasd
?并稍后选择第 1 行等。
for /f %a in ('^" xidel --data=file.txt --extract=$raw ^"') do set "variable=%a"
仅从第一行中提取第一个单词,它会跳过第一个空格之后的内容?
如果您有一个file.txt
包含多行文本的文本文件,例如
asd asd
asdasd asdasd
如何选择要刮掉第 2 行asdasd asdasd
?并稍后选择第 1 行等。
for /f %a in ('^" xidel --data=file.txt --extract=$raw ^"') do set "variable=%a"
仅从第一行中提取第一个单词,它会跳过第一个空格之后的内容?
首先,--data
不需要指定:
xidel --help | FIND "--data"
--data=<string> Data/URL/File/Stdin(-) to process
(--data= prefix can be omitted)
如何选择要刮掉第 2 行
asdasd asdasd
?并稍后选择第 1 行等。
你可以用x:lines($raw)
它。它是一个简写形式,tokenize($raw,'\r\n?|\n')
并且变成$raw
了一个序列,其中每个新行都是另一个项目。然后只需选择第 1项或第 2项:
xidel -s file.txt -e "x:lines($raw)[2]"
asdasd asdasd
for /f %a in ('^" xidel --data=file.txt --extract=$raw ^"') do set "variable=%a"
仅从第一行中提取第一个单词,它会跳过第一个空格之后的内容?
这是因为如果你不设置分隔符,那么它默认为<space>
and <tab>
:
FOR /? | FIND "delimiter"
delims=xxx - specifies a delimiter set. This replaces the
default delimiter set of space and tab.
所以你可以这样做:
FOR /F "delims=" %A in ('xidel -s file.txt -e "x:lines($raw)[2]"') DO SET variable=%A
或使用以下命令导出变量xidel
:
FOR /F "delims=" %A in ('xidel -s file.txt -e "variable:=x:lines($raw)[2]" --output-format^=cmd') DO %A