无忧启动论坛

标题: 经常看到有人就这么把26个字母从头写到尾 [打印本页]

作者: 2012jvnet    时间: 2018-7-22 15:16
标题: 经常看到有人就这么把26个字母从头写到尾
能不能改进一下:
if exist %%1 for /d %%1 in (c:\qq d:\qq e:\qq f:\qq------------------------------------------------------------------z:\qq) do %%1\bin\qq.exe
这中间循环参数假如是26个字母的话,也太死板了,经常看到有人就这么把26个字母从头写到尾。感觉是个问题?
if /l %a in (1 1 26) do command %a 这个数字好搞,但是上面是字母怎么写?
在线等!
作者: 5027527    时间: 2018-7-22 17:07
不用循环就是if语句判断吧。
作者: holley2008    时间: 2018-7-22 18:00
可以考虑Wmic扩展命令或者fsutil命令
作者: 2012jvnet    时间: 2018-7-22 18:18
来具体点fsutil fsinfo drives
怎么写?
作者: 苏州本是    时间: 2018-7-22 20:36
即使用笨办法,为什么不如下把:\qq也移到后面?
if exist %%1 for /d %%1 in (c d e f------------------------------------------------------------------z) do %%1:\qq\bin\qq.exe
作者: 2012jvnet    时间: 2018-7-22 20:56
问题的核心是:字母如何递增:C D E F ........Z
数字的递增参数是 /l ,那字母呢?
作者: 2012jvnet    时间: 2018-7-22 20:58
字母是26个,要是260个那不是写成一条龙来
作者: 2012jvnet    时间: 2018-7-22 21:03
现在换个思路来,不用把字母从头写到尾
我找到了用fsutil fsinfo drives来判断有存在哪些盘符,来设为变量,但是具体的不会写
作者: fxmmm    时间: 2018-7-22 23:54
所以啊,能用就用,否则,就不能用
作者: tt911    时间: 2018-7-23 06:19
又不是cctv我爱发明,好像不用那么严谨吧。
反正都是程序自己做
别太较真了,现在性能过剩
作者: 窄口牛    时间: 2018-7-23 07:02
wmic logicaldisk get name就可以了
作者: holley2008    时间: 2018-7-23 09:57
2012jvnet 发表于 2018-7-22 21:03
现在换个思路来,不用把字母从头写到尾
我找到了用fsutil fsinfo drives来判断有存在哪些盘符,来设为变量 ...

26个字符 其实是固定的序列 直接使用可能更简洁明了
使用fsutil命令的话,比如:
for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "disks=%%b" )
echo !disks!
使用wim命令的话,比如:
for /f "skip=1 tokens=* delims=" %%i in ('wmic logicaldisk where "drivetype=3" get name') do echo %%i
作者: 2010feicool    时间: 2018-7-23 10:04
LZ是没撞上,有些加密磁盘用上For循环的话会造成系统崩溃的,在那时候用上绝对路径就能避免这问题
作者: junyee    时间: 2018-7-23 18:12
这就是 CMD 的局限性.

只能借助第三方工具,,如用 ASCII 转义.
作者: dos时代菜鸟    时间: 2018-7-24 23:41
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set "drv=abcdefghijklmnopqrstuvwxyz"
  4. for /l %%i in (0,1,25) do (        echo !drv:~%%i,1!)
  5. pause
复制代码

作者: plusv    时间: 2018-7-25 02:59
本帖最后由 plusv 于 2018-7-25 06:26 编辑

@echo off
for /L %%C in (0x41,1,0x5A) do (
    cmd /C exit %%C
    for /F %%D in ('
        forfiles /P "%~dp0." /M "%~nx0" /C "cmd /C echo 0x%%=ExitCode:~-2%%"
    ') do echo %%D:\bin\qq.exe
)


作者: kingshui    时间: 2018-8-24 21:10
tt911 发表于 2018-7-23 06:19
又不是cctv我爱发明,好像不用那么严谨吧。
反正都是程序自己做
别太较真了,现在性能过剩

如果写的每个程序都是按着性能过剩的思路来写,那么一堆按照性能过剩的软件同时运行会是什么情况?
作者: laozhao    时间: 2018-9-1 11:24
顶楼就是最简单明了的写法。
作者: qqww9    时间: 2018-9-2 21:56





欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3