|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
『第
16 楼』:
在改的帖子里忘了改那一部分…… 郁闷……&更加郁闷……真不好意思……
没脸见人啦……
|
综合型编程论坛
我的作品索引 |
|
2008-7-27 17:54 |
|
|
xypcmac
初级用户
积分 167
发帖 80
注册 2005-11-7
状态 离线
|
『第
17 楼』:
Quote: | Originally posted by 25167241 at 2008-7-27 17:20:
13楼的大侠
我运行XP 的 CMD 程序.
把您的命令贴上去.
提示此时不应有%%a
不要郁闷,解决问题就会得到快乐. |
|
简单的说:
在命令行逐条执行命令是要遇到类似 %%i 这等参数,%是要减少一个的!
[ Last edited by xypcmac on 2008-7-27 at 06:16 PM ]
|
|
2008-7-27 18:14 |
|
|
xypcmac
初级用户
积分 167
发帖 80
注册 2005-11-7
状态 离线
|
『第
18 楼』:
我觉得大家有点考虑不周全或误会。
1. 虽然U盘分了两个区(既然分了区那应该是USB-HDD模式),但Windows不一定会分配相邻的两个盘符给这两个U分区。
2. 虽然一般情况下,查找所有盘和软件名可以找出要运行的程序并运行。但如果其它盘也有同样名字的文件呢?
有个笨办法可以避免以上问题并正确找到运行:
由批处理本身取得批处理所在盘的盘符(U盘第一分区),然后利用 Ghost32 或 Dsptw 等第三方工具,由盘符查得对应的U盘,反过来,再由U盘查其最后分区。然后运行所要的软件即可。虽然有点点繁琐,但也行之有效。
|
|
2008-7-27 18:17 |
|
|
25167241
初级用户
积分 28
发帖 12
注册 2008-7-26 来自 广州
状态 离线
|
『第
19 楼』:
还差一点
13楼的大侠.%%改%,在CMD可以运行了.不过结果只是搜索程序,并不运行程序,
显示的结果是: 从A到Z
(if exist z:\programfile.exe call a:\programfile.exe)
……
(if exist z:\programfile.exe call z:\programfile.exe)
其中A B 肯定是不必用的.
也还运行程序.请加油,你一定成的.谢谢了.
最好击开始 运行 CMD 程序试一试,就更有把握了.
|
|
2008-7-27 18:20 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
20 楼』:
楼主还是先搞清楚bat和cmd的区别吧
|
|
|
2008-7-27 19:42 |
|
|
radem
高级用户
CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
21 楼』:
Quote: | Originally posted by xypcmac at 2008-7-27 06:17 PM:
我觉得大家有点考虑不周全或误会。
1. 虽然U盘分了两个区(既然分了区那应该是USB-HDD模式),但Windows不一定会分配相邻的两个盘符给这两个U分区 ... |
|
此言差已..我就有分2个区的U盘,每次插进USB口Windows都是分配相邻的两个盘符
|
|
|
2008-7-27 19:49 |
|
|
xypcmac
初级用户
积分 167
发帖 80
注册 2005-11-7
状态 离线
|
『第
22 楼』:
Quote: | Originally posted by 25167241 at 2008-7-27 18:20:
13楼的大侠.%%改%,在CMD可以运行了.不过结果只是搜索程序,并不运行程序,
显示的结果是: 从A到Z
(if exist z:\programfile.exe call a:\programfile.exe)
……
(if exis ... |
|
都说了,像这样的当其他电脑上有同样程序名时,会出现混乱...
就不会是你所要的结果了!不过,你也可以改特殊一点的名字。
|
|
2008-7-27 19:51 |
|
|
523066680
银牌会员
SuperCleaner
积分 2362
发帖 1133
注册 2008-2-2
状态 离线
|
『第
23 楼』:
发个图片给大家轻松一下 (想起一首歌,如果你觉得轻松就拍拍手…^_^)
关于上面的问题……
用一个已经成功测试的例子表示&同名的机会还是比较小的
而且是调用程序,如果同名,一般都是一样的东西了 也没必要判断最后一个盘了
看代码:
for %a in (b c d e f g h i j k l m n) do (if exist %a:\niubi.exe start %a:\niubi.exe)
关于U盘的分区我不是很了解……
[ Last edited by 523066680 on 2008-7-27 at 08:09 PM ]
|
综合型编程论坛
我的作品索引 |
|
2008-7-27 20:03 |
|
|
BC
中级用户
积分 338
发帖 175
注册 2007-10-21
状态 离线
|
『第
24 楼』:
@echo off
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (
if exist %%i:\nul (
for /f "tokens=3" %%j in ('dir /-c %%i:\') do set freesize=%%j
set last=%%i
if not "!freesize!"=="0" goto last_drive
)
)
goto :eof
:last_drive
echo 最后一个分区是 %last%
md %last%:\001
pause
不是我写的...
|
C:\
C:\Del BC |
|
2008-7-27 20:13 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
25 楼』:
@echo off
for /f %%a in ('"wmic logicaldisk where DriveType="3" get DeviceID |find /v "DeviceID""') do set lastdrive=%%a
echo CMD 下最后分区盘符是 %lastdrive%
|
|
|
2008-7-27 20:58 |
|
|
yangzhiyi
中级用户
积分 261
发帖 123
注册 2006-6-6
状态 离线
|
『第
26 楼』:
2000系统有似没有 wmic
|
|
2008-7-27 22:42 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
27 楼』:
先假设这样一个情况成立:当U盘分区后系统是按顺序分配给U盘分区盘符的。
那么楼主的问题可以这样解决:
@echo off&setlocal enabledelayedexpansion
set "code=b c d e f g h i j k l m n o p q r s t u v w x y z"
for %%i in ('cd') do set "a=%%~di"
for %%i in (%code%) do (
set /a n+=1&set "_!n!=%%i"
if defined flag goto :next
if /i "%%i" equ "%a:~,-1%" set "flag=a"
)
:next
start "" "!_%n%!:\programfile.exe"
exit
|
批处理之家新域名:www.bathome.net |
|
2008-7-28 01:21 |
|