Batch file 批处理-将一行中的每个单词提取到标记链接

Batch file 批处理-将一行中的每个单词提取到标记链接,batch-file,markdown,extract,Batch File,Markdown,Extract,这是上面调用的代码。我使用此代码从文件中提取第5行,该代码保留在%%c中。然后我想把那一行中的每个单词都记下来(可以是1到n个单词),并创建一个标记链接,如 [word](word.html) 并将其附加到txt文件中。这就是我目前所拥有的。如果我有10个单词,我真的必须在命令中添加所有标记,如%%d、%%e等吗。?我可以使用像tokens=1-*.*这样的东西吗意思是最后一个标记?使用标记=*使用整行单词作为一个标记,我相信 setlocal enabledelayedexpansion s

这是上面调用的代码。我使用此代码从文件中提取第5行,该代码保留在%%c中。然后我想把那一行中的每个单词都记下来(可以是1到n个单词),并创建一个标记链接,如

[word](word.html)
并将其附加到txt文件中。这就是我目前所拥有的。如果我有10个单词,我真的必须在命令中添加所有标记,如%%d、%%e等吗。?我可以使用像tokens=1-*.*这样的东西吗意思是最后一个标记?使用标记=*使用整行单词作为一个标记,我相信

setlocal enabledelayedexpansion
set "lineNr=5"
set /a lineNr-=1
for /f "usebackq delims=" %%c in (`more +!lineNr! "%~1"`) DO (
for /f "tokens=1-2 delims= " %%d in ("%%c") do (
echo [%%d]^(tags/%%d.html^) [%%e]^(tags/%%e.html^) ^<br^> >> index.txt
)
goto :eof
)
setlocal enabledelayedexpansion
设置“lineNr=5”
设置/a行编号-=1
对于/f“usebackq delims=“%%c in(`more+!lineNr!”%%~1”`)DO(
对于/f“tokens=1-2 delims=“%%d in”(“%%%c”)do(
echo[%%d]^(标签/%%d.html^)[%%e]^(标签/%%e.html^)^>>index.txt
)
后藤:eof
)

下面是一个如何做到这一点的示例。注意,我只是使用了一些部分作为示例,因为我现在没有时间格式化转义字符,但您会明白这一点。
:)


好的,我通过这样做来工作-

set "lineNr=5"
set /a lineNr-=1
for /f "usebackq delims=" %%c in (`more +%lineNr% "overview.md"`) DO (
set "line=%%c"
goto :next
)
:next
for %%i in (%line%) do echo| set /p =[%%i](tags/%%i.html) >> index.txt

必须在所需的第一行(第5行)之后打破循环行列表。

不,您不需要分配每个元变量。。举个例子:
set“str=这是一个6字字符串”
对于(%str%)中的%%i,要回显[%%i](tags/%%i.html)
。第一个for循环获取字符串,然后您可以运行完全相同的,但删除换行符..我只使用这一行获取文件的最后一行,这是有意义的。more命令将从这里的第5行开始,并在more执行时使var“line”等于文件中的每一行。完成更多操作后,“行”仅包含文件中的最后一行,这就是“set”写入index.txt的内容
set "lineNr=5"
set /a lineNr-=1
for /f "usebackq delims=" %%c in (`more +%lineNr% "overview.md"`) DO (
set "line=%%c"
goto :next
)
:next
for %%i in (%line%) do echo| set /p =[%%i](tags/%%i.html) >> index.txt