2012jvnet 发表于 2018-7-22 15:16:46

经常看到有人就这么把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 这个数字好搞,但是上面是字母怎么写?
在线等!

窄口牛 发表于 2018-7-23 07:02:10

wmic logicaldisk get name就可以了

5027527 发表于 2018-7-22 17:07:47

不用循环就是if语句判断吧。

holley2008 发表于 2018-7-22 18:00:59

可以考虑Wmic扩展命令或者fsutil命令

2012jvnet 发表于 2018-7-22 18:18:42

来具体点fsutil fsinfo drives
怎么写?

苏州本是 发表于 2018-7-22 20:36:57

即使用笨办法,为什么不如下把:\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:18

问题的核心是:字母如何递增:C D E F ........Z
数字的递增参数是 /l ,那字母呢?

2012jvnet 发表于 2018-7-22 20:58:15

字母是26个,要是260个那不是写成一条龙来

2012jvnet 发表于 2018-7-22 21:03:26

现在换个思路来,不用把字母从头写到尾
我找到了用fsutil fsinfo drives来判断有存在哪些盘符,来设为变量,但是具体的不会写

fxmmm 发表于 2018-7-22 23:54:11

所以啊,能用就用,否则,就不能用

tt911 发表于 2018-7-23 06:19:31

又不是cctv我爱发明,好像不用那么严谨吧。
反正都是程序自己做
别太较真了,现在性能过剩

holley2008 发表于 2018-7-23 09:57:44

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:10

LZ是没撞上,有些加密磁盘用上For循环的话会造成系统崩溃的,在那时候用上绝对路径就能避免这问题

junyee 发表于 2018-7-23 18:12:40

这就是 CMD 的局限性.

只能借助第三方工具,,如用 ASCII 转义.

dos时代菜鸟 发表于 2018-7-24 23:41:38

@echo off
setlocal ENABLEDELAYEDEXPANSION
set "drv=abcdefghijklmnopqrstuvwxyz"
for /l %%i in (0,1,25) do (        echo !drv:~%%i,1!)
pause

plusv 发表于 2018-7-25 02:59:46

本帖最后由 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:32

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

如果写的每个程序都是按着性能过剩的思路来写,那么一堆按照性能过剩的软件同时运行会是什么情况?{:1_186:}

laozhao 发表于 2018-9-1 11:24:16

顶楼就是最简单明了的写法。

qqww9 发表于 2018-9-2 21:56:51

{:1_183:}{:1_183:}{:1_183:}
页: [1]
查看完整版本: 经常看到有人就这么把26个字母从头写到尾