URL не будет печататься в текстовый файл - PullRequest
0 голосов
/ 24 февраля 2020

Я только что узнал о функциональности Deep Linking Chrome 80's. Я решил, что хочу создать сценарий, в который я вставил бы 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» в текстовый файл.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Пара дополнительных точек -

При использовании Set / p и пользовательского ввода двойные кавычки для установки переменных: Set "url:Enter url:" и расширение до !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 l oop просто другой способ разрешить несколько записей.

с использованием echo(!Var! вместо echo !Var! предотвращает непреднамеренный пробел и приводит к пустой строке вместо строки Echo is Off, которая возникает, когда переменная не определена.

двойные кавычки filepath: "url.txt" - это хорошая привычка для предотвращения проблем, особенно когда имена файлов / папок содержат пробелы.

0 голосов
/ 24 февраля 2020

У вас здесь пара вещей не так. Во-первых, пробелы являются значительными в set инструкциях в пакетном режиме, что означает, что вы фактически устанавливаете переменную с именем %displayURL %.

Во-вторых, вы объединяете строки в пакетном режиме, просто помещая строки рядом с друг с другом; +

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

не нужно *1005* или другими символами.
...