我正在尝试创建一个代码,我可以访问网站而无需访问我的浏览器我有搜索功能,我会手动更改我对编码很新,所以任何建议都有用,这里是代码。< / p>
@echo off
echo Top searches
echo 1. Faceit
set /p name =
if %name% EQU "1" goto F
if %name% NEQ "1" then goto custom
:F
start "" https://www.faceit.com/en
:custom
echo What website would you like to go to?
set /p x =
start "" https://www.%x%
答案 0 :(得分:1)
您的代码中有相当多的内容会阻止它以任何有意义的方式工作。初看起来,我看到十件不同的东西要么是完全错误的,要么只是违反了可以考虑的东西&#34;良好的编程习惯&#34;批量生产。
出于某种原因,Microsoft决定允许使用变量名称的空格,因此%this is a valid variable name%
。认真。因此,您的两个set /p
语句都在创建您从未使用过的变量。
而不是set /p name =
和set /p x =
,请使用set /p name=
和set /p x=
这个只是一个很好的编程习惯,可以说不是错误的,#34;但这是一个早期形成的好习惯。
使用引号可以避免用户输入&
或>
之类的内容,并让这些内容破坏脚本的流程。您可以将引号括在提示符周围(如set /p variable="Enter text: "
),但如果您使用常规set
语句执行此操作,则引号将成为值的一部分。为避免这种情况,请将第一个引号放在变量名称的左侧,如下所示:set /p "variable=Enter text: "
这也可以防止任何隐藏空间在值的末尾被粘贴。
第二个then
语句中的if
,如果要给您一个语法错误,因为它不是批处理中的有效关键字。只是摆脱它。
if "%name%" NEQ "1" goto custom
当您在比较的一侧放置引号时,您还需要在另一侧放置引号。这样可以保持&
和>
等字符不会破坏脚本流。
if "%name%" EQU "1" goto F
if "%name%" NEQ "1" goto custom
批处理脚本从上到下运行,除非由goto
,call
,if
或其他一些流控制命令执行操作。在这种情况下,调用start "" https://www.faceit.com/en
后,下一个非空白行为:custom
。
要避免:自定义运行,请在第一次启动exit /b
或goto :eof
后终止脚本 - 这两个都将停止脚本,但如果您从脚本运行脚本,请保持命令提示符处于打开状态命令行而不是双击它。请注意,如果您使用goto :eof
,则不需要制作:eof
标签,因为它已内置在命令提示符中。
同样,没有必要,只是良好的编程习惯。当你使用call
来运行子程序时,你必须包括冒号,所以你可能在任何地方都是一致的。
热门搜索 1. Faceit
就是这样。没有什么可以告诉用户该做什么或通过键入1
之外的其他内容来表明他们可以进入另一个站点。除非您计划成为唯一使用该脚本的人,否则我建议在该部分中添加更具描述性的内容。
如果您要自动将https://www.
添加到自定义网址的开头,请将其放在屏幕上,这样用户就不会意外地转到{ {1}}或其他什么。
您可能希望查看https://www.https://www.google.com
命令以查找脚本的未来版本以替换初始choice
命令,具体取决于您希望为用户提供的选项数。
在您的代码中添加评论不会有任何伤害。
set /p