经常看到有人就这么把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 这个数字好搞,但是上面是字母怎么写?
在线等! wmic logicaldisk get name就可以了 不用循环就是if语句判断吧。 可以考虑Wmic扩展命令或者fsutil命令 来具体点fsutil fsinfo drives
怎么写? 即使用笨办法,为什么不如下把:\qq也移到后面?
if exist %%1 for /d %%1 in (c d e f------------------------------------------------------------------z) do %%1:\qq\bin\qq.exe 问题的核心是:字母如何递增:C D E F ........Z
数字的递增参数是 /l ,那字母呢? 字母是26个,要是260个那不是写成一条龙来 现在换个思路来,不用把字母从头写到尾
我找到了用fsutil fsinfo drives来判断有存在哪些盘符,来设为变量,但是具体的不会写 所以啊,能用就用,否则,就不能用 又不是cctv我爱发明,好像不用那么严谨吧。
反正都是程序自己做
别太较真了,现在性能过剩 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 LZ是没撞上,有些加密磁盘用上For循环的话会造成系统崩溃的,在那时候用上绝对路径就能避免这问题 这就是 CMD 的局限性.
只能借助第三方工具,,如用 ASCII 转义. @echo off
setlocal ENABLEDELAYEDEXPANSION
set "drv=abcdefghijklmnopqrstuvwxyz"
for /l %%i in (0,1,25) do ( echo !drv:~%%i,1!)
pause 本帖最后由 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
)
tt911 发表于 2018-7-23 06:19
又不是cctv我爱发明,好像不用那么严谨吧。
反正都是程序自己做
别太较真了,现在性能过剩
如果写的每个程序都是按着性能过剩的思路来写,那么一堆按照性能过剩的软件同时运行会是什么情况?{:1_186:} 顶楼就是最简单明了的写法。 {:1_183:}{:1_183:}{:1_183:}
页:
[1]