batch-file - 为每个 /dir 结果分配数字并要求输入数字
问题描述
第一次在这里发帖。我正在编写一个小脚本,其中一个部分是列出网络中所选计算机的所有用户。我希望能够选择任何用户而不必写下全名。
%PCNAME% 之前在用户输入中定义。
/dir \\PCNAME\Users
这会列出 %PCNAME% 上的每个用户,只要它在网络中。
示例输出:
29.12.2020 10:35 <DIR> .
29.12.2020 10:35 <DIR> ..
21.12.2020 12:42 <DIR> Public
01.03.2021 08:02 <DIR> User1
16.02.2021 15:21 <DIR> User2
24.02.2021 13:14 <DIR> User3
0 Datei(en), 0 Bytes
6 Verzeichnis(se), 178.603.126.784 Bytes frei
我想让它看起来像这样:
[1] 29.12.2020 10:35 <DIR> .
[2] 29.12.2020 10:35 <DIR> ..
[3] 21.12.2020 12:42 <DIR> Public
[4] 01.03.2021 08:02 <DIR> User1
[5] 16.02.2021 15:21 <DIR> User2
[6] 24.02.2021 13:14 <DIR> User3
现在我想做一个简单的
set /p User="Number of the User: ":
因此,您只需输入例如数字 5,然后用户将是“user2”
提前致谢
解决方案
@ECHO OFF
SETLOCAL
FOR /f "delims=" %%b IN ('dir \users ^|find "<DIR>" ^|find /v " ." ^|find /v /n ""') DO ECHO %%b&FOR /f "delims=[]" %%c IN ("%%b") DO SET maxchoices=%%c
ECHO select 1..%maxchoices%
GOTO :EOF
第一个过滤器只允许包含的行<DIR>
,第二个排除包含 .
的行,第三个将 [sequencenumber] 添加到该行。
maxchoices
然后设置为最后一个序列号。
(我使用\users
是因为这适合我的测试设置)
SO上有很多关于如何执行选择的文章。请参阅menu
或上的文章choice
。
推荐阅读
- html - 动态增加 div 的高度正在为同级 div 创造空间
- javascript - 期望中间件函数调用下一个函数或发送 http 400 代码
- c# - 价值任务
和异步状态机 - java - 矩阵上的递归移动
- xcode - UIAutomation 选项未列在 Instrument 的 XCode10 列表中
- java - 将 bbcode 转换为特殊格式
- cordova - Cordova InAppBrowser 不会在外部打开 url
- spring-cloud-stream - Spring Cloud 流式传输 kinesis binder 消费者组 - kcl 与 dynomodbstore
- typescript - 角度不从后端服务器读取令牌
- javascript - 如何匹配原始字符串中的字符串?