无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 12005|回复: 23
打印 上一主题 下一主题

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

[复制链接]
跳转到指定楼层
1#
发表于 2005-7-19 17:42:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
[这个贴子最后由hxj在 2005/07/19 05:49pm 第 1 次编辑]

请教高手:
win98操作系统(所安装的分区不定)中批处理怎样表示系统所在的根目录和program files目录?
已知:   %windir%表示 \windows目录,
 但  %progra~1%却不能表达\program files 目录
还有NT系统中 CD /D %systemroot%可直接从任何途径进入系统的window目录,
win98中如何实现直接从任何途径进入系统的window目录或根目录或program files目录呢?
24#
发表于 2005-7-29 01:06:55 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

值得学习!~~讨论的很不错..
回复

使用道具 举报

23#
 楼主| 发表于 2005-7-24 19:10:22 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

[这个贴子最后由hxj在 2005/07/24 07:12pm 第 1 次编辑]

我把"RUNDLL.exe 命令详解"转帖一下好让感兴趣的朋友共同分享
RUNDLL.exe 命令详解(转贴)

常用Windows9x的朋友一定对Rundll32.exe和Rundll.exe这两个档案不
会陌生吧,不过,由於这两个程式的功能原先只限於在微软内部使用,因而真正
知道如何使用它们的朋友想必不多。那麽好,如果你还不清楚的话,那麽
就让我来告诉你吧。
首先,请你做个小实验(请事先保存好你正在执行的程式的结果,否则...)∶
点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入
"rundll32.exe user.exe,restartwindows",再按下回车键,这时你将看到,机
器被重启了!怎麽样,是不是很有趣?
当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,
执行Dll也,它的功能就是以命令列的方式呼叫Windows的动态链结库,
Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运
用於16位的链结库,它们的命令格式是∶
RUNDLL.EXE ,,
这里要注意三点∶1.Dll档案名中不能含有空格,比如该档案位於
c:\Program Files\目录,你要把这个路径改成c:\Progra~1\;2.Dll档案名与Dll
入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的
一点∶Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),
GetTextFace()等。在Visual Basic中,提供了一条执行外部程式的指令Shell,格
式为∶
Shell “命令列”
如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难
以甚至无法实现的效果∶仍以重启为例,传统的方法需要你在VB工程中先建立一
个模组,然後写入WinAPI的声明,最後才能在程式中呼叫。而现在只需一句:
Shell “rundll32.exe user.exe,restartwindows”就搞定了!是不是方便
多了?
实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特
的优势。下面,我就将本人在因特网上收集的有关Rundll的指令列举如下(很有
用的,能省去你很多呼叫Windows API的时间!!),供大家在程式设计中引用∶
命令列: rundll32.exe shell32.dll,Control_RunDLL
功能: 显示控制面板
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
功能: 显示“控制面板-辅助选项-键盘”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
功能: 显示“控制面板-辅助选项-声音”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
功能: 显示“控制面板-辅助选项-显示”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
功能: 显示“控制面板-辅助选项-滑鼠”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
功能: 显示“控制面板-辅助选项-传统”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
功能: 执行“控制面板-添加新硬体”向导。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 执行“控制面板-添加新印表机”向导。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2
功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。
命令列: rundll32.exe syncui.dll,Briefcase_Create
功能: 在桌面上建立一个新的“我的公文包”。
命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll
功能: 显示复制软碟视窗
命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
功能: 显示“日期与时间”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
功能: 显示“时区”选项视窗。
命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称]
功能: 显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。
命令列: rundll32.exe rnaui.dll,RnaWizard
功能: 显示“新建拨号连接”向导的视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
功能: 显示“显示属性-背景”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
功能: 显示“显示属性-萤屏保护”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
功能: 显示“显示属性-外观”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
功能: 显示显示“显示属性-属性”选项视窗。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
功能: 显示Windows的“字体”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
功能: 同样是显示Windows的“字体”档案夹。
命令列: rundll32.exe shell32.dll,SHFormatDrive
功能: 显示格式化软碟对话框。
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0
功能: 显示“控制面板-游戏控制器-一般”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
功能: 显示“控制面板-游戏控制器-进阶”选项视窗。
命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档)
功能: 列印HTML文档。
命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
功能: 显示Microsoft Exchange一般选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
功能: 显示“控制面板-滑鼠” 选项 。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
功能: 显示 “控制面板-键盘属性-速度”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
功能: 显示 “控制面板-键盘属性-语言”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2
功能: 显示Windows“印表机”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
功能: 显示Windows“字体”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
功能: 显示“控制面板-输入法属性-输入法”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
功能: 执行“添加新调制解调器”向导。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
功能: 显示“控制面板-多媒体属性-音频”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1
功能: 显示“控制面板-多媒体属性-视频”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
功能: 显示“控制面板-多媒体属性-MIDI”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3
功能: 显示“控制面板-多媒体属性-CD音乐”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
功能: 显示“控制面板-多媒体属性-设备”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1
功能: 显示“控制面板-声音”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl
功能: 显示“控制面板-网路”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
功能: 显示ODBC32资料管理选项视窗。
命令列: rundll32.exe shell32.dll,OpenAs_RunDLL{drive:\path\filename}
功能: 显示指定档案(drive:\path\filename)的“打开方式”对话框。
命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl
功能: 显示“控制面板-密码”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl
功能: 显示“控制面板-电源管理属性”选项视窗。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL
PrintersFolder
功能: 显示Windows“印表机”档案夹。(同rundll32.exe shell32.dll,Control_RunDLL
main.cpl @2)
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
功能: 显示“控制面板-区域设置属性-数字”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
功能: 显示“控制面板-区域设置属性-货币”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
功能: 显示“控制面板-区域设置属性-时间”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
功能: 显示“控制面板-区域设置属性-日期”选项视窗。
命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名]
功能: 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
功能: 显示“控制面板-系统属性-传统”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
功能: 显示“控制面板-系统属性-设备管理器”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
功能: 显示“控制面板-系统属性-性能”属性视窗。
命令列: rundll32.exe user.exe,restartwindows
功能: 强行关闭所有程式并重启机器。
命令列: rundll32.exe user.exe,exitwindows
功能: 强行关闭所有程式并关机。
命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
功能: 显示“拨号属性”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl
功能: 显示“桌面主旨”选项面板
当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通
过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述
了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果! 以上内容取自《程式设计技术》
回复

使用道具 举报

22#
发表于 2005-7-23 10:47:24 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

呵呵,不错
回复

使用道具 举报

21#
 楼主| 发表于 2005-7-21 23:09:35 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

下面引用由Brglng2005/07/21 04:52pm 发表的内容:
重启:Rundll.exe user.exe,exitwindowsexec
关机:rundll.exe user.exe,exitwindows
这个原理好像跟上面不太一样。因该可以用的。关于上面的我再看看吧。
我在网上查到了"RUNDLL.exe 命令详解"
命令列: rundll32.exe user.exe,restartwindows
功能: 强行关闭所有程式并重启机器。
命令列: rundll32.exe user.exe,exitwindows
功能: 强行关闭所有程式并关机。
不过还是要感谢你提供的线索和思路
回复

使用道具 举报

20#
 楼主| 发表于 2005-7-21 17:40:22 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

[这个贴子最后由hxj在 2005/07/21 06:00pm 第 3 次编辑]

重启:Rundll.exe user.exe,exitwindowsexec
我试了只能实现window的重启动,而不能实现我要的电脑的重启动!
比如SetInput.bat内容如下:
@set input=%1
@echo The string you input was %input%
@echo And the string was stored in the vriable "input"
调用时SetInput a,则环境变量input为a,那不是方便多了。
你是指在批处理中用call 调运 SetInput a  然后怎样实现提示并等待键盘输入呢?
也就是说这个 a (也许是b .c 等)怎样键盘输入呢?
回复

使用道具 举报

19#
发表于 2005-7-21 17:18:29 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

另外对于你的第二个问题,为什么不用参数呢?
比如SetInput.bat内容如下:
@set input=%1
@echo The string you input was %input%
@echo And the string was stored in the vriable "input"
调用时SetInput a,则环境变量input为a,那不是方便多了。
回复

使用道具 举报

18#
发表于 2005-7-21 16:52:34 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

重启:Rundll.exe user.exe,exitwindowsexec
关机:rundll.exe user.exe,exitwindows
这个原理好像跟上面不太一样。因该可以用的。关于上面的我再看看吧。
回复

使用道具 举报

17#
 楼主| 发表于 2005-7-21 16:44:40 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

下面引用由Brglng2005/07/21 04:32pm 发表的内容:
再到网上查查吧,可能我记错了
好,感谢你的热心帮助!
我等你查询的结果!
回复

使用道具 举报

16#
发表于 2005-7-21 16:32:51 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

再到网上查查吧,可能我记错了
回复

使用道具 举报

15#
 楼主| 发表于 2005-7-21 16:15:04 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

[这个贴子最后由hxj在 2005/07/21 04:17pm 第 1 次编辑]

我是在win98系统中用的啊
刚才说错了,没有CMD窗口,是win98的DOS窗口
回复

使用道具 举报

14#
发表于 2005-7-21 16:11:43 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

rundll32.Exe shell32.dll SHExitWindowsEx 2只能用在Win98里,不能用于NT/2k/XP吧?
回复

使用道具 举报

13#
 楼主| 发表于 2005-7-21 16:11:04 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

下面引用由Brglng2005/07/21 03:55pm 发表的内容:
这样的话,我现在只想出一种很繁的方法,如果你只要输入一个字母的话可以使用(仅供参考!)
更好的办法,你可以使用一些增强工具。
这办法看上去"苯",不过应该管用,我试一下,太感谢你了!
回复

使用道具 举报

12#
 楼主| 发表于 2005-7-21 16:06:41 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

我在批处理和CMD窗口以及RUN中都试了
rundll32.Exe shell32.dll SHExitWindowsEx 2
没能实现重启动的功能
回复

使用道具 举报

11#
发表于 2005-7-21 15:55:38 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

[这个贴子最后由Brglng在 2005/07/21 03:57pm 第 1 次编辑]

这样的话,我现在只想出一种很繁的方法,如果你只要输入一个字母的话可以使用(仅供参考!)
choice /c:abcdefghijklmnopqrstuvwxyz /n Please input a letter:
if errorlevel 26 set input=z
if errorlevel 26 goto end
if errorlevel 25 set input=y
if errorlevel 25 goto end
if errorlevel 24 set input=x
if errorlevel 24 goto end
……
if errorlevel 1 set input=a
:end
echo The letter you input was %input%
更好的办法,你可以使用一些增强工具。
回复

使用道具 举报

10#
 楼主| 发表于 2005-7-21 15:41:02 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

感谢楼上指教
第二个问题就是你理解的意思:
我要批处理给提示输入一键值,输入后(如输入为D),则下面语句比如执行copy xxx.txt  "imput":\(其中的input即代表输入的D)
在NT系统中可如下实现:
set /p input = "提示的内容"
copy xxx.txt %input%:\
但在win98中没 /p这开关,怎样达到我的要求
我的意思说清了吗?
回复

使用道具 举报

9#
发表于 2005-7-21 14:58:57 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

[这个贴子最后由Brglng在 2005/07/21 03:20pm 第 5 次编辑]

这些变量在2k/XP应该也可以用的
其实还有更好的办法。先进入%windir%,然后取得当前盘符,比如存为%WinDrv%,那么Program Files即为"%WinDrv%\Program Files"(文件名中有空格,要用引号括起来)。不过相对复杂,要用到prompt命令。这种方法只能在9x/ME下用。
另外对于上面的方法我要说一下。如果在安装系统时将windows目录放在某一个子目录内,那么就要相应地增加“\..”。比如%windir%为c:\a\windows,则program files为%windir%\..\..\progra~1
hxj:你问的问题我看到了
Win98没有提供软重启的命令。如果在DOS下可以用shutdown命令。另外像Win98启动盘里的restart.com也可以。
不过如果在Win98界面里,可以使用Rundll32实现关机/重启功能。
关机:rundll32.Exe shell32.dll SHExitWindowsEx 1
注销:rundll32.Exe shell32.dll SHExitWindowsEx 0
重启:rundll32.Exe shell32.dll SHExitWindowsEx 2
其实是用Rundll32.exe调用dll文件里的函数。照这样,可以利用rundll32实现很多Win API功能。比如rundll32.Exe user32.dll LockWorkStation锁定桌面等。只要是在Win98的界面里就可以把它编成批处理执行。
第二个问题我没听懂什么意思。是不是说输入一个键,批处理把输入的内容存为一个环境变量?
回复

使用道具 举报

8#
 楼主| 发表于 2005-7-21 14:06:59 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

[这个贴子最后由hxj在 2005/07/21 02:25pm 第 2 次编辑]
下面引用由Brglng2005/07/21 12:14pm 发表的内容:
不对啊,如果%windir%为c:\windows,那么%windir%\..即表示%windir%的上一级目录,即C:\,那么%windir%\..\progra~1就应该是c:\Program Files啊
感谢Brglng兄:
%windir%\..\progra~1在批处理path后试用成功了,就这\..\我怎么没想到,还是老兄高明啊!
再次感谢为我这菜鸟解决了一难题!
总结一下:
%windir%                  为 win98系统的windows目录
%windir%\..               为win98系统所在分区的根目录
%windir%\..\progra~1    为win98系统的program files 目录
以上环境变量均能在win98系统批处理中使用
回复

使用道具 举报

7#
 楼主| 发表于 2005-7-21 13:58:06 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

下面引用由Brglng2005/07/21 12:14pm 发表的内容:
不对啊,如果%windir%为c:\windows,那么%windir%\..即表示%windir%的上一级目录,即C:\,那么%windir%\..\progra~1就应该是c:\Program Files啊
对不起,我没看清\..\
我再试一下,但要从别的盘符进入该目录在win98中还是不行的,不像winXP有cd /D 同时改变盘符的开关.
回复

使用道具 举报

6#
发表于 2005-7-21 12:14:06 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

不对啊,如果%windir%为c:\windows,那么%windir%\..即表示%windir%的上一级目录,即C:\,那么%windir%\..\progra~1就应该是c:\Program Files啊
回复

使用道具 举报

5#
 楼主| 发表于 2005-7-21 11:53:03 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

2楼的只能用在NT/2k/XP系统(且应是%ProgramFiles%)
3楼的%"%windir%\..\program files" "%windir%\..\progra~1"也不行
%windir%为\windows目录,program files是在根目录下的
看来win98下此题难解了,还有那位高手能有好办法!
回复

使用道具 举报

4#
发表于 2005-7-21 09:53:54 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

说错了,用%HostWinBootDrv%可能也不行。它只是指主分区。看来只用用"%windir%\..\program files"和%windir%\..\progra~1了。如果windows目录是某个目录的子目录,那么就多加几个“\..”。比如%windir%=c:\a\windows,那么program files则应为%windir%\..\..\progra~1或者"%windir%\..\..\program files"
回复

使用道具 举报

3#
发表于 2005-7-21 09:48:15 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

不是吧?这两个环境变量还想只有在NT/2k/XP里才有的
而且即使在NT/2k/XP里也应该是%ProgramFiles%,中间没空格的。
Win98应该有个%HostWinBootDrv%,那么Program Files文件夹则应是"%HostWinBootDrv%\Program Files"或者%HostWinBootDrv%\progra~1
也可以用"%windir%\..\program files"或者%windir%\progra~1
回复

使用道具 举报

2#
发表于 2005-7-21 09:18:29 | 只看该作者

[求助]win98操作系统中批处理怎样表示系统所在的根目录和program files目录

%systemroot%即为系统根目录.
%program files%为windows默认program files目录.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-15 04:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表