【发布时间】:2018-03-29 20:32:32
【问题描述】:
windows cmd 批处理
我有一个如下所示的文本文件:
Dog
Cat
Frog
Bat
Bird
Mouse
我想为每个字符串、每一行分配一个数字。
这样就变成了
1 Dog
2 Cat
3 Frog
4 Bat
5 Bird
6 Mouse
然后我想要求用户输入一个数字,然后将对应的字符串存储在变量中。
所以如果用户输入 1,那么变量设置为字符串 Dog
因此,当用户输入 1 时,程序存储/输出 Dog
set /p var1="number? " 所以 var1 变成了字符串,而不是数字。
这有点像任务的第一部分,但现在我需要第二部分,将字符串存储在变量中。
@echo off
set TEXT_T="list.txt"
set /a c=0
setlocal ENABLEDELAYEDEXPANSION
FOR /F "tokens=1 usebackq" %%i in (%TEXT_T%) do (
set /a c=c+1
echo !c! %%i
)
endlocal
pause
感谢 LotPings,以下是更新后的答案。
稍作调整即可通过字符串请求文件夹
这提供了一种从 CMD 使用 Megatools 的更简单方法
https://megatools.megous.com/man/megals.html
https://github.com/megous/megatools
@echo off
:start:
megals /Root/
set /p var1="dir? " & megals /Root/%%var1%%
for /f "tokens=1,* delims=:" %%A in ('megals -n /Root/%%var1%% ^|findstr
/n "." ') do (
set Link[%%A]=%%B
Echo %%A %%B
)
for /f "tokens=1,* delims=:" %%A in ('megals -n -e /Root/%%var1%% ^|findstr
/n "." ') do (
set Link[%%A]=%%B
)
set /p choice=Select #:
Call Set Link=%%Link[%choice%]%%
set "trimmedlink="
for %%h in (%Link%) do if not defined trimmedlink set "trimmedlink=%%h"
Megadl %trimmedlink% && goto :start:
pause
编辑:必须将%Link% 修剪为第一个单词,即链接
Megals -e /Root/misc 的输出如下所示:
星号是文件的唯一链接 ID
/Root/misc
https://mega.nz/#!********!********************* /Root/misc/File1
https://mega.nz/#!********!********************* /Root/misc/File2
https://mega.nz/#!********!********************* /Root/misc/File3
上面的批处理脚本看起来像:
1 File1
2 File2
3 File3
Select #: <------input file number
Edit2号码列表已修复
Edit3 文件名中的括号会使程序崩溃 即
1 File(1)
然后将选择的文件号作为相应链接传递给MagadlMegadl Link
批处理脚本允许您只需输入相应的文件号即可下载链接,因此您无需在标准 cmd 窗口中输入长链接 ID。
【问题讨论】:
-
能否请edit your question 包含您编写或尝试过的代码,(这不是订购服务的免费代码)。
-
另外请阅读this guide,了解如何正确提问。
-
运行
choice /?,同时在这个网站上搜索您的菜单问题的现有答案。 -
这样编号怎么办:
find /N /V "" "list.txt"或findstr /N /R "^" "list.txt"?
标签: windows loops batch-file command-line cmd