Board logo

标题: [系统相关] 怎样使批处理跨系统使用? [打印本页]

作者: pumahxh    时间: 2009-12-18 15:02     标题: 怎样使批处理跨系统使用?

2个月前遇见批处理,狂喜不已。之前我连dos命令不会几个更没听说过批处理,通过2个月的学习,现在已有初步印象。当初爱上批处理,很大一个原因就是随写随用,但在工作当中,渐渐发现我在xp下写的批处理在windows98,windows2000却不能使用,也许你会讲这年代谁还用windows98,windows2000,但是没办法,工作中就有这些机器。
请问有什么办法解决?
比如:windows2000 下没有tasklist,taskkill
作者: lxzzr    时间: 2009-12-18 15:05

你可以将XP系统32目录下的taskkill.exe、tasklist.exe拷贝到2000的系统目录下;
作者: pumahxh    时间: 2009-12-18 15:12     标题: 回复2楼

试过了,没有用,提示说tasklist、taskkill是在xp或更高系统下使用
作者: lxzzr    时间: 2009-12-18 15:13     标题: 回复 3楼 的帖子

这倒是没有想到的,2000的话还可以用WMIC,98就....
作者: pumahxh    时间: 2009-12-18 15:38

在论坛里搜索了好多遍,没有找到如何解决在windows2000,98下使用taskkill,tasklist,或者存在有这两个类似功能的命令也行,但没有结果。。。
作者: Batcher    时间: 2009-12-18 18:15

PsTools里面的pslist、pskill命令能否满足要求?

第三方命令行工具 PsTools 下载地址:
http://bbs.bathome.net/thread-3981-1-1.html
作者: zqz0012005    时间: 2009-12-18 19:33     标题: 回复 1楼 的帖子

很多软件都不能跨平台使用,不是一个道理吗?
作者: 523066680    时间: 2009-12-18 19:40

windows就是每一代都要弄点不同的东西。要你跟他走
作者: pumahxh    时间: 2009-12-18 22:24

回复6楼:谢谢!回去试试,现在还要兼容98,麻烦!
回复7楼:话虽有理,可我们学批处理不是为了提高工作效率吗?换一台电脑(系统)编的代码就不行,那还要做编这            些代码干嘛?所以,能兼容更多的环境也是在提高工作效率!
回复8楼:说的好!微软的windows给全世界带来了极大地方便,同时也使大部分人局限在它的世界里,我就是其中一例。



今天找到了win2000下有杀进程的tskill命令,不知道有没有显示进程列表的命令。在win98下又有没有显示和杀进程的命令呢?

还是期待能有人帮我解答如何兼容各种环境。。。

[ 本帖最后由 pumahxh 于 2009-12-18 22:32 编辑 ]
作者: Batcher    时间: 2009-12-18 23:13

想要兼容各种环境,是一件比较难的事情。

当你想尽各种办法兼容了Win98、Win2k、XP、Win2k3、Vista、Win7,那么,是否还要考虑home版、ghost版、精简版等各种系统呢?是否还要考虑运行批处理的账号是否拥有足够的权限去执行那些命令呢?是否还要考虑注册表或者组策略对某些命令做了限制呢?......

一步一步来慢慢吧。
作者: katta    时间: 2009-12-19 15:13

我现在也在寻找一个在windows 2000下显示进程的命令,找到了用的时候说是这个命令工具需要运行终端服务,现我把命令贴出来:
  1. qprocess.exe >   Display information about processes local or remote 在本地或远程显示进程的信息(需终端服务)
  2. query.exe >   Query TERMSERVER user process and sessions 查询进程和对话
复制代码

如果你研究出来了告诉我一声。
作者: katta    时间: 2009-12-19 15:23

前二天Batcher管理员帮我写的在自动结束进程的Hyzw_AutoProc.exe的批处理代码在XP可以正常运行,但到了windows 2000下因为tasklist不能用,致使这个批处理程序到现在也用不成。现在我把代码贴出来了,等你研究出在windows 2000显示进程的命令了再根据这个改代码:
  1. @echo off
  2. for /f "tokens=2 delims=," %%a in ('tasklist /nh /fo csv /fi "imagename eq Hyzw_AutoProc.exe"') do (
  3.     ntsd -c q -p %%~a
  4. )
复制代码

[ 本帖最后由 katta 于 2009-12-19 15:26 编辑 ]
作者: my84214182    时间: 2009-12-19 19:12

直接使用ntsd -c q -p pid呢?


原帖由 katta 于 2009-12-19 15:23 发表
前二天Batcher管理员帮我写的在自动结束进程的Hyzw_AutoProc.exe的批处理代码在XP可以正常运行,但到了windows 2000下因为tasklist不能用,致使这个批处理程序到现在也用不成。现在我把代码贴出来了,等你研究出在wi ...

作者: katta    时间: 2009-12-19 19:38

我需要把这个代码做成自动的,根据程序名自动结束进程,然后加到服务器的计划任务里,让他每天到规定的那个时间就自动执行批处理把这个进程结束掉,而不用每天还要打开服务器手动去结束,我有个备份的批处理就是到每天规定的时间把A服务器上的当天备份的数据自动复制到B服务器备份,而不用我去手动操作了,所以也想把那个自动结束进程的做成跟那个备份一样的。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2