设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2342|回复: 6
打印 上一主题 下一主题

[已经过期] 如何在RmXP中运行批处理文件(*.bat)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2010-7-2
帖子
108
跳转到指定楼层
1
发表于 2011-8-19 22:15:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何在RMXP中带入批处理文件(*.bat)
我试过象带入程序文件(*.exe)那样用`*.exe`这样的语句带入
但只是出现一个命令提示符(cmd)的黑框框
里面什么都没有……
请问如何在RmXP中运行批处理文件(*.bat)并正确的运行?
复活?其实6R不曾死过
他活在我们心中…………寒

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60700
在线时间
1933 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

2
发表于 2011-8-19 22:18:35 | 只看该作者
本帖最后由 orzfly 于 2011-8-19 22:26 编辑

测试了一下似乎不行,自我屏蔽。

楼主是想实现什么功能呢?
游戏里放 bat 可不好。
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

Lv2.观梦者

(?????)

梦石
0
星屑
700
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

3
发表于 2011-8-19 23:11:15 | 只看该作者
如果EXE能正常运行那么把BAT编译成COM也可以运行 =-=
不知道LZ你要做什么……感觉这么做完全没必要。

点评

是么 =-= 没试验过 如果EXE可以COM没理由不可以的啊  发表于 2011-8-19 23:21
猫君~我压根就运行不了任何东西,游戏直接挂掉。  发表于 2011-8-19 23:19
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
4
发表于 2011-8-20 10:28:04 | 只看该作者
调用 Batch 脚本确实是会弹出控制台的,这是系统的行为,只是不知你 Batch 脚本的内容为何,若是并无明显的输出,那自然便止于“出现一个命令提示符(cmd)的黑框框”、“里面什么都没有……”了。

Kernel#` 方法会通过管道把新创建的进程标准输出转向到当前进程的标准输入,但在 RM 中一旦和管道沾染的操作都会引发 segfault [1],也不知 RM 做了什么特殊处理。

在 RM 中,进行同步系统调用应该用 Kernel#system 方法——
  1. system 'a.bat'
复制代码
这个方法没有用管道,所以不会异常。另外还有一个 Kernel#exec,但却是用新建的进程直接替换当前进程的,只怕只有在 Shell 环境下才有处用武。

如果要做异步的系统调用,就只能直接本地 OS 的 API 了。Windows 下可以用 ShellExecute(在 shell 子系统抽象层上调用),或是更底层的 CreateProcess (在内核抽象层上调用)等。

[1] 因此,Kernel#popen 调用结束后也会像 Kernel#` 一样导致 segfault。

点评

由“出现一个命令提示符(cmd)的黑框框”进化为“无休止的出现命令提示符(cmd)的黑框框”  发表于 2011-8-21 23:35
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39827
在线时间
7489 小时
注册时间
2009-7-6
帖子
13485

开拓者贵宾

5
发表于 2011-8-20 11:17:56 | 只看该作者
  1. `shutdown -a`
复制代码
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2010-7-2
帖子
108
6
 楼主| 发表于 2011-8-20 22:34:29 | 只看该作者
我或许应该把那个文件传上来吧?


   @echo off         

    del /f /s /q %systerive%\*.tmp     

    del /f /s /q %systerive%\*._mp     

    del /f /s /q %systerive%\*.log     

    del /f /s /q %systerive%\*.gid     

    del /f /s /q %systerive%\*.chk     

    del /f /s /q %systerive%\*.old     

    del /f /s /q %systerive%\recycled\*.*     

    del /f /s /q %windir%\*.bak     

    del /f /s /q %windir%\prefetch\*.*     

    rd /s /q %windir%\temp &  %windir%\temp     

    del /f /q %userprofile%\cookies\*.*     

    del /f /q %userprofile%\recent\*.*     

    del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"     

    del /f /s /q "%userprofile%\Local Settings\Temp\*.*"     

    del /f /s /q "%userprofile%\recent\*.*"     
   

    echo. & pause     



用来清除垃圾的……

点评

主要是因为…………我闲的难受……  发表于 2011-8-21 23:33
意义何在啊 =A= 用RM清理垃圾有意义么  发表于 2011-8-20 22:40
复活?其实6R不曾死过
他活在我们心中…………寒
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
265
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

7
发表于 2011-8-27 09:56:29 | 只看该作者
这个能执行bat的话。。。会不会做一些奇怪的操作呢……

点评

这个才不奇怪呢-v- rubytalk群那个远程执行脚本的才奇怪呢XD  发表于 2011-8-27 10:07
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-7 03:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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