0

我刚刚发现了 Chrome 80 的深度链接功能。我决定制作一个脚本,我将粘贴 URL 并粘贴我想要链接到的文本,然后它将生成的 URL 打印到文本文件中。

我遇到的问题是它不会打印到文本文件。

这是代码。

@ECHO OFF
Setlocal EnableDelayedExpansion
set /p url="Enter URL:"
set /p highlight="Enter Highlighted Text:"
set highlightResult=!highlight: =%%20!
set displayURL = %url% + "#:~:text=" + %highlightResult%
echo %displayURL%
echo %displayURL% >> url.txt
PAUSE

我已经尝试了多种变体来做同样的事情,但它只是将“ECHO OFF”打印到文本文件中。

4

2 回答 2

0

还有几点-

在使用 Set /p 和用户输入时,双引号变量的设置:Set "url:Enter url:"和扩展 with!expansion!而不是%expansion%将避免由于用户输入某些字符而出现的许多问题。一个例子是:

@ECHO OFF & Setlocal EnableDelayedExpansion
For /L %%A in (1,1,100) Do (
set /p "url=Enter URL:"
set /p "highlight=Enter Highlighted Text:"
set "highlightResult=!highlight: =%%20!"
set "displayURL=!url! "#:~:text=" !highlightResult!"
echo(!displayURL!
echo(!displayURL!>>"url.txt"
)
PAUSE

示例输出:

Enter URL:https://www.google.com Enter Highlighted Text:this&that<>plus the (other) https://www.google.com "#:~:text=" this&that<>plus%20the%20(other)

循环的使用For /L只是允许多个条目的另一种方式。

使用echo(!Var!而不是echo !Var!防止意外的空白,并导致空行而不是Echo is Off当变量未定义时产生的行。

双引号文件路径:"url.txt"是一个防止问题的好习惯,特别是当文件/文件夹名称包含空格时。

于 2020-02-24T08:25:34.920 回答
0

你这里有几件事是错的。首先,空格set在批处理语句中很重要,这意味着您实际上是在设置一个名为%displayURL %.

其次,您只需将字符串彼此相邻即可批量连接字符串;不需要+或其他语言使用的任何其他符号。

set displayURL=%url%#:~:text=%highlightResult%

于 2020-02-24T03:24:36.513 回答