batch-file - 为什么我不能做一个包含 \ 的 for 循环?
问题描述
当涉及到最麻烦的字符时,例如&
,您可以通过将字符串括在引号中来走私它们。但是,对于某些上下文中的某些字符,它不起作用:
@echo off
for %%u in ("hello\?there" "general kenobi") do (
echo %%u
)
这只是返回"general kenobi"
。如果您替换\?
为\*
or"
或,则相同\"
。为什么会这样,是否有解决方法?我希望能够使用可能包含或不包含的 URL 列表执行 for 循环\?
。
解决方案
我用数组解决了它。但是,如果 URL 包含 ,则不起作用"
。至于为什么会出现问题,请看 aschipfl 的评论。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET index_list=
SET n=1
:loop
SET url=
SET /P url="Enter url: "
SET url="%url%"
IF %url%=="" GOTO endloop
SET url[%n%]=%url%
SET index_list=%index_list% %n%
SET /A n+=1
GOTO loop
:endloop
SET index_list=%index_list:~1%
FOR %%n IN (%index_list%) DO (
ECHO !url[%%n]!
)
推荐阅读
- c# - 为tabcontrol中的每个tabitem添加多个datatable和tabitem.content
- python - 卸载旧python后无法从atom运行py文件
- forms - 如果表单未绑定,如何选择 MS Access 组合框中的第一项
- android - 从图库中重命名选定的图像
- python - 在 Kaggle 内核上使用 train_test_Split 方法时显示错误。帮助表示赞赏
- json - 带有可选登录/密码和使用 perl 发送命令的 Telnet
- discord.io - !sad 抛出错误:“TypeError:无法读取未定义的‘成员’的属性”
- regex - 替换文件中的文件路径字符串
- leaflet - 扩展/覆盖 Mapbox-gl 'baselayer' loadTile
- algorithm - 随机快速排序分区概率