这是一个批处理脚本,它将一次性从文件中获取随机行,然后将其打印到控制台并将其写入文件。
因此,我所拥有echo !LINE!
的地方就是您编写 HTML 文件的地方。批处理实际上有点痛苦,因为>
, <
, %
, ^
, !
, 和其他字符很特殊,需要^
在前面转义。
@echo off
SET /A LINE_NUM=0
SET LINE=
setlocal EnableDelayedExpansion
for /F "delims=" %%l in (random_lines.txt) do (
call:rand 0 !LINE_NUM!
IF !RAND_NUM! LSS 1 (
SET LINE=%%l
)
SET /A LINE_NUM=!LINE_NUM! + 1
)
echo !LINE!
echo ^<^^!doctype html^>^<html^>^<head^>^<title^>Random Quote^</title^>^</head^>
> %OUT_FILE%
echo ^<body^>^<p^>^<strong^>!LINE!^</strong^>^</p^> >> %OUT_FILE%
echo ^</body^>^</html^> >> %OUT_FILE%
goto :EOF
REM rand()
REM Input: %1 is min, %2 is max
REM Output: RAND_NUM is set to a random number from min through max.
:rand
SET /A RAND_NUM=%RANDOM% * (%2 - %1 + 1) / 32768 + %1
goto :EOF
或者,也许更好,而不是将 HTML 放在批处理文件中,您可以将它分成两部分保存在单独的文件中。将这两部分连接起来并生成完整 HTML 文件的胶水就是您选择的那一行。例如,我可以创建一个名为的文件sig_file_header.txt
,其中包含以下内容:
<!doctype html>
<html>
<head>
<title>Random Quote</title>
</head>
<body>
<p><strong>
然后我可以创建一个sig_file_footer.txt
用这个调用的文件:
</strong></p>
</body>
</html>
请注意,当我将这些文件放在一起时,页眉后跟页脚,我得到了一个完整的 HTML 文档。因此,当我将它们放在一起时,我可以将脚本选择的行填入其中,并获得包含该行的完整 HTML 文档。
这样做很容易。echo !LINE!
将上面脚本中以开头的 4 行替换为以下 3 行:
type sig_file_header.txt > new_signature_file.html
echo !LINE! >> new_signature_file.html
type sig_file_footer.txt >> new_signature_file.html