无忧启动论坛

标题: Native子系统的 Cmd (Native Cmd) M2正式发布 -- 2011-07-22 (reg.exe,xcopy.exe) [打印本页]

作者: 2011足迹    时间: 2011-5-23 23:15
标题: Native子系统的 Cmd (Native Cmd) M2正式发布 -- 2011-07-22 (reg.exe,xcopy.exe)
Google项目空间 http://code.google.com/p/nativecmd/

2011-7-22 修正了ncmd调用外部程序时main函数的argc和argv丢失的问题..现在应该能正常调用外部程序了,另外增加reg.exe和xcopy.exe命令
由于reactos的代码中没有实现reg query命令..所以这个外部程序也没有实现..
欢迎测试反馈.
谢谢

2011-7-19 代码做了较大调整,可以编译win32子系统的版本了..喜欢diy的朋友有福了
主要的变化是调整了代码,把native子系统的代码全部移出到kernel.dll使得ncmd.exe可以在win32子系统编译和调试
增加了输入重定向功能
kernel.dll中已经添加注册表操作所需的函数.reg命令呼之欲出.
代码调整较多.可能会带来新的问题.希望大家多多测试反馈.谢谢
下一步准备增加大家关系的wim挂载,cab解压,7z解压,wim解压等功能.有兴趣的朋友欢迎加入开发.

2011-5-30 修正kernel.dll中CreateProcess函数工作不正常的问题,增加for命令的/F参数(待测试),增加type命令
for命令已经完整移植,等待大家测试

2011-5-25 根据大家的反馈修复一个退出后0xC0000135蓝屏的问题.
原因是kernel.dll的DllMain中初始化了Nls(为了代码页转化).退出后却不能删除这个对象(内核没提供相关函数).kernel32.dll也需要创建这个对象..于是就蓝屏了.
解决办法是我们用NtNls替换Nls.目前好像没有什么问题.这个代码页转换好像也不是太好使(输出中文是乱码).暂且先这样.希望以后可以完美实现中文处理.

2011-5-23 今天应大家要求正式发布Native Cmd的M1版本
这个命令行处理程序和windows的命令行语法兼容

目前已经完全实现的功能
1.输出重定向
2.运行批处理文件
3.环境变量
4.回显控制
5.通配符
6.输入重定向
7.管道符
8.Native程序调用
一、目前已经实现的命令
attrib
cd(chdir)
copy
date
del(delete,erase)
dir
dirs
echo
endlocal
exit
for
goto
help
if
label
md(mkdir)
move
path
pause
popd
prompt
pushd
rd(rmdir)
rem
ren(rename)
replace
set
setlocal
shift
time
type
ver
verify
vol
二、扩展的命令
delay
dirs
echos
echoerr
echoserr
free
memory
mklink
timer
三、外部命令
reg
xcopy

红色标注的命令表示未完全实现或者是部分功能不正常

暂时不支持非ascii字符(包括中文),命令行中会卡死,输出会乱码..批处理请选择ansi编码或者utf-8无bom



2011-5-23   NativeCmd.rar (138.46 KB, 下载次数: 548)
2011-5-25   NativeCmd.rar (138.46 KB, 下载次数: 403)
2011-5-30   NativeCmd.rar (140.7 KB, 下载次数: 357)
2011-7-19   NativeCmd.rar (154.27 KB, 下载次数: 371)
2011-7-22   NativeCmd.rar (169.79 KB, 下载次数: 1053)

[ 本帖最后由 2011足迹 于 2011-7-22 19:24 编辑 ]
作者: 2011足迹    时间: 2011-5-23 23:16
占楼备用....
作者: 527104427    时间: 2011-5-23 23:25
坐好沙发,看楼主大作……
作者: chenall    时间: 2011-5-23 23:32
报一个问题不知是个例还是?能否解决。

我在BootExecute中添加了两行
native.exe load native.cfg
ncmd.exe /c nautorun.bat
启动蓝屏
把上面的/c改成 /k
启动时正常,但是进入ncmd之后只要输入exit退出就肯定蓝屏

蓝屏的代码是一样的.
0xc0000135

只要把ncmd.exe这一行去掉就完全正常可以启动到桌面。


另外,我是把ncmd.exe程序放在二级内核中的。一级内核使用NATIVE.EXE查找并加载二级内核。

这样退出NATIVE.EXE之后NCMD.EXE会接管控制。

[ 本帖最后由 chenall 于 2011-5-23 23:34 编辑 ]
作者: 2011足迹    时间: 2011-5-23 23:36
原帖由 chenall 于 2011-5-23 23:32 发表
报一个问题不知是个例还是?能否解决。

我在BootExecute中添加了两行
native.exe load native.cfg
ncmd.exe /c nautorun.bat
启动蓝屏
把上面的/c改成 /k
启动时正常,但是进入ncmd之后只要输入exit退 ...

很奇怪的问题...
蓝屏提示是应用程序初始化失败(dll未找到)..按说不应该在exit的时候出错..
作者: 2011t80um1    时间: 2011-5-23 23:39
哈哈,终于站在前排了,支持,支持,强烈支持。。。。。
作者: chenall    时间: 2011-5-24 00:09
下个版本可不可以添加一下TYPE命令和MOUNT命令?
另外CD命令也可以考虑增强一下。可以省去好多代码。
作者: andos    时间: 2011-5-24 08:22
原帖由 chenall 于 2011-5-24 00:09 发表
下个版本可不可以添加一下TYPE命令和MOUNT命令?
另外CD命令也可以考虑增强一下。可以省去好多代码。

type命令貌似可以搜索串字的吧,这功能不错
支持增强cd 命令!! 呵呵~~
作者: andos    时间: 2011-5-24 08:25
昨晚在win7下生成的ncmd (r21版),都没问题,用的是build.BAT生成
今早再生成了一个r23版(用BUILD.BAT生成)的就抽风了...


用你附件的就没问题呢
再试了一下,用build-free.BAT来生成R23又没蓝屏了,生成的文件大小和你的一样
我想应该是我用错batch来build吧...?

bootexecute 用的是ncmd /c batch.cmd

[ 本帖最后由 andos 于 2011-5-24 08:51 编辑 ]
作者: wyb391    时间: 2011-5-24 08:37
就来晚了一会,前排那么多了。呵呵支持了
作者: siming0803    时间: 2011-5-24 08:47
我也来支持一下楼主!!!!!!!!!
作者: 135956    时间: 2011-5-24 09:13
能加入注册表操作的相当命令么?哈哈。。
作者: yaojy    时间: 2011-5-24 09:22
实在是高。
就是貌似发生饥荒,那个瘦得可怜
作者: NicTense    时间: 2011-5-24 09:39
原帖由 chenall 于 2011-5-23 23:32 发表
报一个问题不知是个例还是?能否解决。

我在BootExecute中添加了两行
native.exe load native.cfg
ncmd.exe /c nautorun.bat
启动蓝屏
把上面的/c改成 /k
启动时正常,但是进入ncmd之后只要输入exit退 ...


会不会是因为需要某个dll文件
作者: 2010pby    时间: 2011-5-24 10:45
也来学习下,还没看太明白
作者: fujianabc    时间: 2011-5-24 10:47
原帖由 135956 于 2011-5-24 09:13 发表
能加入注册表操作的相当命令么?哈哈。。

这个貌似o&o bluecon的native环境有此功能
作者: haiou327    时间: 2011-5-24 10:50
注册表加载Native和Ncmd,Ncmd手动Exit兰屏,Ncmd放在一级内核



作者: andos    时间: 2011-5-24 11:22
原帖由 fujianabc 于 2011-5-24 10:47 发表

这个貌似o&o bluecon的native环境有此功能

o&o bluecon的native环境 你有吗?
另外,除了bluecon还有别的吗?

[ 本帖最后由 andos 于 2011-5-24 13:49 编辑 ]
作者: kcyou    时间: 2011-5-24 11:29
标题: 回复 #1 2011足迹 的帖子
下载后kernel.dll金山毒霸报毒:盗号木马?

[ 本帖最后由 2011kcyou 于 2011-5-26 20:10 编辑 ]
作者: haiou327    时间: 2011-5-24 13:16
有了外部Nmount现在Ncmd是不是可以直接替代Native了
注册表仅加载Ncmd

正常启动到Ncmd模式,二级内核和Tools已经Mount成功,再exit  结果000135兰脸给你看!
二级内核用Native Mount可以成功启动桌面

Native的Scd或增强CD是否移植过来

[ 本帖最后由 haiou327 于 2011-5-24 13:24 编辑 ]
作者: cqflfzlyx    时间: 2011-5-24 14:08
看了一下帖子,不懂呀,等最后的pe吧!
作者: andos    时间: 2011-5-24 14:56
原帖由 haiou327 于 2011-5-24 13:16 发表
有了外部Nmount现在Ncmd是不是可以直接替代Native了
注册表仅加载Ncmd 122001

正常启动到Ncmd模式,二级内核和Tools已经Mount成功,再exit  结果000135兰脸给你看!
二级内核用Native Mount可以成功启动桌面 ...

ncmd+外部程式,基本上已经可以取代nativeshell了
当然一些功能能够整合上去会比较方便吧,可以直接ncmd ? 查看有什么命令可用

现在基本上应该是等ncmd完善功能和增强功能,整合等的吧....
作者: haiou327    时间: 2011-5-24 15:52
直接用Ncmd替代Native
BootExecute
Ncmd.exe /k Autorun.cmd

Autorun.cmd

cd /d d:
md x:\tools
if exist nmount.exe nmount.exe e:\minipe\wxpe.wim x:\wxpe
if exist nmount.exe nmount.exe e:\minipe\tools.wim x:\tools


exit 就兰屏


[ 本帖最后由 haiou327 于 2011-5-24 15:58 编辑 ]
作者: chenall    时间: 2011-5-24 16:11
我的测试情况是只要执行过NCMD.EXE程序,不管作了什么操作,肯定蓝屏。

注,使用MOUNT

[ 本帖最后由 chenall 于 2011-5-24 16:36 编辑 ]
作者: sp_star    时间: 2011-5-24 16:24
我在PE3下测试,用7z解压,似乎没问题,能进桌面
作者: andos    时间: 2011-5-24 16:29
原帖由 sp_star 于 2011-5-24 16:24 发表
我在PE3下测试,用7z解压,似乎没问题,能进桌面

我也是,ncmd+n7z,能进桌面
作者: fujianabc    时间: 2011-5-24 18:30
原帖由 andos 于 2011-5-24 11:22 发表

o&o bluecon的native环境 你有吗?
另外,除了bluecon还有别的吗?

很就没用了,那个只能在xp下安装。

作者: andos    时间: 2011-5-24 19:05
原帖由 fujianabc 于 2011-5-24 18:30 发表

很就没用了,那个只能在xp下安装。
http://bbs.wuyou.net/attachment.php?aid=100151&noupdate=yes

看来是很旧版的BLUECON吧,印象中从V6开始就是WINPE来,没安装程式

图上来看,好像不能被NCMD调用的似,非常可惜
那唯有看看ncmd会不会加注册表操作的功能吧....

[ 本帖最后由 andos 于 2011-5-24 19:32 编辑 ]
作者: 135956    时间: 2011-5-24 19:24
xp自己的都不能调用,你别想了。。我几前也玩过,与系统的恢复控制台相似。
作者: andos    时间: 2011-5-24 21:32
原帖由 135956 于 2011-5-24 19:24 发表
xp自己的都不能调用,你别想了。。我几前也玩过,与系统的恢复控制台相似。

不能调用也没紧要,反正是想多收集些作备用,因为目前还不能操作注册表

另外,如果有choice功能的话,还可以弄个选单吧,呵呵~~

[ 本帖最后由 andos 于 2011-5-24 21:34 编辑 ]
作者: 2011足迹    时间: 2011-5-24 22:08
原帖由 chenall 于 2011-5-24 16:11 发表
我的测试情况是只要执行过NCMD.EXE程序,不管作了什么操作,肯定蓝屏。

注,使用MOUNT

调试了一下...
蓝屏的位置是在win32k.sys加载时或加载后...
ncmd退出时有个驱动退出了..不知道是不是这个原因...
作者: 2011足迹    时间: 2011-5-24 23:23
135蓝屏问题初步确定是kernel.dll的DllMain函数引起的..继续调试中...
作者: haiou327    时间: 2011-5-24 23:42
足迹辛苦了

解决了135问题
Ncmd整合MOUNT 7z  增强CD expand 可以完全替代 NativeShell

[ 本帖最后由 haiou327 于 2011-5-24 23:49 编辑 ]
作者: 2011足迹    时间: 2011-5-25 00:26
很纠结的问题...
nls初始化引起的后面135蓝屏...
不初始化nls所有涉及代码页转换的函数会出错...
作者: weijun189    时间: 2011-5-25 07:08
支持一下楼主,等着用产品
作者: haiou327    时间: 2011-5-25 10:43
测试5.25终于解决Exit  135兰屏问题
用Ncmd+外部工具可以完全替代NativeShell
作者: hhh333    时间: 2011-5-25 10:49
标题: 回复 #37 haiou327 的帖子
mount功能如何实现?
作者: andos    时间: 2011-5-25 12:06
原帖由 hhh333 于 2011-5-25 10:49 发表
mount功能如何实现?

外部的nmount.exe
作者: chenall    时间: 2011-5-25 12:50
试了一下,新版的不蓝了,赞一个。

辛苦了。
作者: haiou327    时间: 2011-5-25 12:50
标题: 回复 #38 hhh333 的帖子
sp_star从Native分离的外部Nmount
不过还是期待足迹在Ncmd里能整合mount 增强Cd(Chenall整合的SCD) 7z
作者: 2011足迹    时间: 2011-5-25 13:52
原帖由 haiou327 于 2011-5-25 12:50 发表 用sp_star从Native分离的外部Nmount不过还是期待足迹在Ncmd里能整合mount 增强Cd(Chenall整合的SCD) 7z
先实现原有内置命令再说吧
作者: haiou327    时间: 2011-5-25 15:35
Bootexecute
Ncmd /c Autorun.Cmd

Autorun.Cmd [code]

@echo off
md x:\tools
set Drv=c d e f j h i j k l m n o p q r s t u v w x y z
for %%i in (%Drv%) do (
    if exist %%i:\minipe\tools.wim Nmount.exe
%%i:\minipe\tools.wim x:\tools
    if exist %%i:\minipe\wxpe.wim Nmount.exe %%i:\minipe\wxpe.wim x:\wxpe
    )
>nul


>nul 这里好象无法重定向Mount Success 挂载成功的输出信息
测试修改Chenall NativePE用Ncmd加载成功,一开始先mount二级内核,再mount外置工具包,mount二级内核原来一级内核文件就无法使用,二级内核没有整合Nmount.exe,造成mount工具包TOOLS.wim失败,无法加载工具包,调整先mount工具包TOOLS.wim,再Mount二级内核。

http://u.115.com/file/bhbdpln0

[ 本帖最后由 haiou327 于 2011-5-26 19:13 编辑 ]
作者: andos    时间: 2011-5-25 17:17
想问一个问题

NATIVE环境下,"Back space" 键是用不到的?
作者: haiou327    时间: 2011-5-25 19:06
标题: 回复 #44 andos 的帖子
是Ncmd下吧,可以使用,就是显示不正常为.
作者: andos    时间: 2011-5-25 19:12
原帖由 haiou327 于 2011-5-25 19:06 发表
是Ncmd下吧,可以使用,就是显示不正常为.

原来是显示不正常啊...还以为用不到呢...呵呵~~
作者: kcyou    时间: 2011-5-26 11:16
标题: 回复 #24 haiou327 的帖子
能不能直接将TOOLS.WIM  nmount到其他内存盘,如Y盘,以减小X盘空间占用。另外能否使用COPY命令将TOOL.WIM拷贝到X盘再挂载?本人还没有测试

[ 本帖最后由 2011kcyou 于 2011-5-26 11:23 编辑 ]
作者: andos    时间: 2011-5-26 11:40
原帖由 2011kcyou 于 2011-5-26 11:16 发表
能不能直接将TOOLS.WIM  nmount到其他内存盘,如Y盘,以减小X盘空间占用。另外能否使用COPY命令将TOOL.WIM拷贝到X盘再挂载?本人还没有测试

跑到nativecmd,应该还没有y盘的出现,所以挂y盘是不行的
要挂y盘,可以在pecmd.ini内设定吧

至于使用COPY命令将TOOL.WIM拷贝到X盘再挂载,应该是可以,不过,这样需要多些内存吧
作者: zhoubin    时间: 2011-5-26 12:07
标题: 回复 #43 haiou327 的帖子
哎呀,不好意思,我太菜了,请教一下,你的这个批处理,如何做到倒序搜索,并且找到第一个tools.wim就挂载(如e盘),找到第二个tools.wim不再挂载(如d盘)。。。。。。
不好意思,我太菜了,本来不想麻烦大家,自己解决这个问题。。。。折腾了一早晨,没解决,我的批处理太烂了,让大家见笑了。。。。

哦,忘了,再请教一下:
Bootexecute
Ncmd /c Autorun.Cmd

我看前面的帖子写的是:
Ncmd /k Autorun.Cmd(我的xpe用的也是这个)
不知,这两个写法,有什么区别。。。。




[ 本帖最后由 zhoubin 于 2011-5-26 12:13 编辑 ]
作者: andos    时间: 2011-5-26 12:15
原帖由 zhoubin 于 2011-5-26 12:07 发表
哎呀,不好意思,我太菜了,请教一下,你的这个批处理,如何做到倒序搜索,并且找到第一个tools.wim就挂载(如e盘),找到第二个tools.wim不再挂载(如d盘)。。。。。。
不好意思,我太菜了,本来不想麻烦大家 ...

c到z会设定最后一个(即较后的字母,比如D和E都有,就会设成E)
z到c会设定最前一个(即较前的字母,比如D和E都有,就会设成D)

他从c开始,应该会设定较后的字母

/c 不会自动结束批处
/k 会自动结束批处

[ 本帖最后由 andos 于 2011-5-26 12:18 编辑 ]
作者: zhoubin    时间: 2011-5-26 12:25
标题: 回复 #50 andos 的帖子
怪了,我这里好像挂载了两次(d盘和e盘),谢谢您的回复。。。。。
我还以为要在这个批处理中加入set呢。。。。
作者: andos    时间: 2011-5-26 12:32
原帖由 zhoubin 于 2011-5-26 12:25 发表
怪了,我这里好像挂载了两次(d盘和e盘),谢谢您的回复。。。。。
我还以为要在这个批处理中加入set呢。。。。

可能他那种写法是全部找到的都挂吧

如果不行可以试试我的写法,这种只会找一个,要前要后自行修改
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=188616&page=64#pid2237828

[ 本帖最后由 andos 于 2011-5-26 12:36 编辑 ]
作者: haiou327    时间: 2011-5-26 13:50
标题: 回复#49 zhoubin 的帖子
@echo off
md x:\tools
set Drv=Z W V U T S R Q P O N M L K J I H G F E D C
for %%i in (%Drv%) do (
    if exist %%i:\minipe\tools.wim Nmount.exe
%%i:\minipe\tools.wim x:\tools
   
if exist %%i:\minipe\wxpe.wim Nmount.exe %%i:\minipe\wxpe.wim x:\wxpe
   
if exist x:\wxpe\system32\Pecmd.exe exit      
   
)>nul


-------------------------------------------------------------------------------------------------------------------------------------------------------------
这样就可以按倒序搜索,第一次找到即退出Ncmd模式(要求是Tools.wim和Wxpe.wim两个文件不要分开存放)

NCMD
/c 即加载完成Autorun.Cmd即退出Ncmd模式,类似于在Autorun.cmd最后加入一句EXIT
Ncmd /k 即加载完成Autorun.Cmd不退出Ncmd模式,继续回到NCmd命令行输入模式待命

[ 本帖最后由 haiou327 于 2011-5-26 14:32 编辑 ]
作者: zhoubin    时间: 2011-5-26 15:03
感谢andos,感谢haiou327 (YY写写)两位。。。。

反馈一下情况,我这里很奇怪,我这里只有52楼andos提供的比较适合我的情况,但是使用Nmount.exe,这一句cd /d %PE%需要注销掉,其他路径也需要变通一下。。。。
总之,经我反复试验,使用for遍历查找并执行第一个被找到的文件的话,第二个被找到的文件不再被挂载,在我这里的情况还是需要使用set的。。。。

再次感谢两位的热心帮助。。。。
作者: haiou327    时间: 2011-5-26 15:51
标题: 回复 #54 zhoubin 的帖子
搜到最后一个MOUNT(从C到Z)盘符靠后
------------------------------------------------------------
@echo off
md x:\tools
set Drv=c d e f j h i j k l m n o p q r s t u v w x y z
for %%i in (%Drv%) do (
  if exist %%i:\minipe\wxpe.wim set
PT=%%i:\minipe
  )
if exist %PT%\Tools.wim Nmount.exe %PT%\Tools.wim x:\tools
if Exist %PT%\wxpe.wim Nmount.exe %PT%\wxpe.wim X:\wxpe
if exist X:\wxpe\system32\Pecmd.exe Exit





搜到最后一个MOUNT(从Z到C)盘符靠前
------------------------------------------------------------
@echo off
md x:\tools
set Drv=Z W V U T S R Q P O N M L K J I H G F E D C
for %%i in (%Drv%) do (
  if exist %%i:\minipe\wxpe.wim set
PT=%%i:\minipe
  )
if exist %PT%\Tools.wim Nmount.exe %PT%\Tools.wim x:\tools
if Exist %PT%\wxpe.wim Nmount.exe %PT%\wxpe.wim X:\wxpe
if exist X:\wxpe\system32\Pecmd.exe Exit




作者: thttht    时间: 2011-5-26 16:07
请教各位谁用过Native Cmd中的mklink命令啊?我这里不知道为什么命令行里提示建立成功,但实际无法访问啊?文件和目录都不成功!有用过并成功的吗?讲讲用法和经验好吗?谢谢!!!
作者: 2011足迹    时间: 2011-5-26 16:12
原帖由 thttht 于 2011-5-26 16:07 发表 请教各位谁用过Native Cmd中的mklink命令啊?我这里不知道为什么命令行里提示建立成功,但实际无法访问啊?文件和目录都不成功!有用过并成功的吗?讲讲用法和经验好吗?谢谢!!!
mklink功能现在还不完善,只有ntfs的hard link好使
作者: haiou327    时间: 2011-5-26 16:30
@echo off
md x:\tools
set Drv=Z W V U T S R Q P O N M L K J I H G F E D C
for %%i in (%Drv%) do (
    if exist %%i:\minipe\tools.wim Nmount.exe %%i:\minipe\tools.wim x:\tools
    if exist %%i:\minipe\wxpe.wim Nmount.exe %%i:\minipe\wxpe.wim x:\wxpe
    if exist x:\wxpe\system32\Pecmd.exe exit
      
    )

@足迹
这个逻辑顺序应该不会错,找到第一个Wxpe.wim MOUNT后即退出,因为x:\wxpe\system32\Pecmd.exe这个条件成立,但实际上并不是这样,如果磁盘两个分区以前都存在minipe\wxpe.wim,后续还会继续MOUNT第二次找到的WXPE.wim只是出错,费解为什么没有即时响应Exit退出循环呢
以下是二级内核没有放Nmount,测试用三个分区存放minipe\tools.wim,minipe\wxpe.wim ,用的以上批处理。只是可以用2>nul屏掉错误信息


[ 本帖最后由 haiou327 于 2011-5-26 17:00 编辑 ]
作者: thttht    时间: 2011-5-26 16:57
原帖由 2011足迹 于 2011-5-26 16:12 发表
mklink功能现在还不完善,只有ntfs的hard link好使


我现在ntfs的hard link的也没有成功!
我是手动输入的命令如下:
mklink c:\a.txt c:\a\a.txt   【c:\a\a.txt为原始文件】
提示建立成功!也可以看到创建的c:\a.txt文件,但打开a.txt文件提示文件错误!

[ 本帖最后由 thttht 于 2011-5-26 17:00 编辑 ]
作者: andos    时间: 2011-5-26 18:56
原帖由 zhoubin 于 2011-5-26 15:03 发表
感谢andos,感谢haiou327 (YY写写)两位。。。。

反馈一下情况,我这里很奇怪,我这里只有52楼andos提供的比较适合我的情况,但是使用Nmount.exe,这一句cd /d %PE%需要注销掉,其他路径也需要变通一下。。。 ...

我用cd /d %PE% 是我懒打多次

其实可以这样,就不用cd /d,因为如果你cd /d到%PE%,当前路径就会变成%PE%,如果你的nmount.exe 不用全个路径,肯定不行
  1. @echo off
  2. for %%i in (Z W V U T S R Q P O N M L K J I H G F E D C) do (
  3. if exist %%i:\BOOT\7PE.7Z (
  4. set PE=%%i:\BOOT
  5. )
  6. )
  7. if exist %PE%\7PE.7Z %windir%\system32\N7Z.EXE xs %PE%\7PE.7Z X:\
  8. if exist %windir%\system32\PECMD.EXE exit
复制代码
这样的话%windir%\system32\N7Z.EXE 也可以改成N7Z.EXE,因为当前路径就是%windir%\system32

[ 本帖最后由 andos 于 2011-5-26 19:00 编辑 ]
作者: 2011足迹    时间: 2011-5-26 19:16
原帖由 thttht 于 2011-5-26 16:57 发表 我现在ntfs的hard link的也没有成功!我是手动输入的命令如下:mklink c:\a.txt c:\a\a.txt   【c:\a\a.txt为原始文件】提示建立成功!也可以看到创建的c:\a.txt文件,但打开a.txt文件提示文件错误!
硬链应该加/h参数
作者: haiou327    时间: 2011-5-26 19:35
测试 MKlinK 建立硬链接没有问题,建立的新链接文件可以正常运行啊

作者: thttht    时间: 2011-5-26 20:05
谢谢 足迹和YY ,请问如何查看Native Cmd下各个命令的参数及作用啊?
MKlinK ?或 MKlinK help   可以吗?
作者: 2011足迹    时间: 2011-5-26 20:28
原帖由 thttht 于 2011-5-26 20:05 发表
谢谢 足迹和YY ,请问如何查看Native Cmd下各个命令的参数及作用啊?
MKlinK ?或 MKlinK help   可以吗?

nativecmd的帮助有help命令(查看所有命令和功能)?命令(查看所有命令),/?参数(命令的详细使用帮助)
作者: kcyou    时间: 2011-5-27 04:25
使用Ncmd.exe N7z.exe及Nmount.exe修改 MINI TangoPE 0519 Native 测试成功。
修改注册表Bootexecute数值数据为:
                Ncmd.exe /c NAutorun.Cmd
NAutorun.Cmd内容为:
@echo off
md x:\tools
set Drv=Z W V U T S R Q P O N M L K J I H G F E D C
for %%i in (%Drv%) do (
    if exist %%i:\minipe\tools.wim Nmount.exe %%i:\minipe\tools.wim x:\tools
    if exist %%i:\minipe\tools.7z %windir%\system32\N7Z.EXE xs %%i:\minipe\tools.7z x:\tools
    if exist %%i:\minipe\wxpe.wim Nmount.exe %%i:\minipe\wxpe.wim x:\wxpe
    if exist %%i:\minipe\WXPE.7Z %windir%\system32\N7Z.EXE xs %%i:\minipe\WXPE.7Z X:\WXPE
    if exist x:\wxpe\system32\Pecmd.exe exit      
    )>nul


   以上WIM和7z两种形式均测试成功。
作者: thttht    时间: 2011-5-27 09:38
原帖由 2011足迹 于 2011-5-26 20:28 发表

nativecmd的帮助有help命令(查看所有命令和功能)?命令(查看所有命令),/?参数(命令的详细使用帮助)


谢谢足迹!
发点东西!足迹你看看这个对你有用吗?希望有所帮助,我对编程一窍不通!
========================================================================================
Native shell — Windows command prompt which can start before Winlogon and Win32 subsystem
Russian version


Native shell is a program for experiments with a Native API mode of Windows. Native mode is a mode, where chkdsk starts at the boot time before login screen appears. It is used by chkdsk utility to check and correct errors in the system partition. The Native mode itself is a blue screen (it is blue in Windows XP, another color in other versions of Windows), which appears before the Windows login screen. See the image (click the picture to zoom it):

Windows XP Native mode. Native shell application is running.

The program is a shell (a command line interface). It can perform some basic operations with Windows files and directories.Program runs before starting of main Windows components, so we have access to the entire file system and registry without many restrictions. All operations are implemented through the Native API (ntdll.dll).
Features
Not implementedList of console commands
If the argument contains a space, it should be put in quotation marks (except for "cd" command, it can process paths without quotes).

源代码和可执行文件 nativeshell_0.12.rar (36.13 KB, 下载次数: 86)

[ 本帖最后由 thttht 于 2011-5-27 09:41 编辑 ]
作者: andos    时间: 2011-5-27 09:47
原帖由 thttht 于 2011-5-27 09:38 发表


谢谢足迹!
发点东西!足迹你看看这个对你有用吗?希望有所帮助,我对编程一窍不通!
========================================================================================
Native shell — Win ...

nativeshell嘛

看功能就知道是我们之前用的那个吧,哈哈~~

看样子,我们之前用的应该是基于这个的吧

[ 本帖最后由 andos 于 2011-5-27 09:48 编辑 ]
作者: 2010zgghh    时间: 2011-5-27 14:07
高手双出大作了,学习!
作者: zds1210    时间: 2011-5-28 01:07
有意思啊。同志们。再努力一下,在PE上用。
作者: hht168    时间: 2011-5-28 07:59
有两个问题向各位高手请教:
(1.) Ncmd 比native shell 有什么优势吗?我觉得native一个小文件能做的事,Ncdm却需要好几个文件来完成(比如n7z、nmount...等),似乎不好。
(2) 如果说利用native 启动Pe1.x是因为挂载wim二级核心文件(不用解压)导致速度快的话,那本坛中以前的作品直接挂载一级wim内核,岂不是更快?
不知我理解的对否?望各位赐教。
作者: andos    时间: 2011-5-28 08:57
原帖由 hht168 于 2011-5-28 07:59 发表
有两个问题向各位高手请教:
(1.) Ncmd 比native shell 有什么优势吗?我觉得native一个小文件能做的事,Ncdm却需要好几个文件来完成(比如n7z、nmount...等),似乎不好。
(2) 如果说利用native 启动Pe1 ...

以我的理解:

1. cmd,也就是支持批处理,那样的灵活性和功能延展比较强。用ncmd还是nativeshell,看你需要什么功能吧,如果只是简单的mount或者n7z,基本上nativeshell都可以,但你要多变化的话,当然还是批处理会比较强大

2. 不单是mount,用native连一级内核都少了,对于usb1.1或者加载usb2.0失败的人会有用。貌似pe1.x 用mount还可以用更少内存来跑动pe1.x
作者: kcyou    时间: 2011-5-28 16:10
请教:出现蓝屏c000021a代码是什么意思?
作者: 2011足迹    时间: 2011-5-28 20:07
原帖由 2011kcyou 于 2011-5-28 16:10 发表
请教:出现蓝屏c000021a代码是什么意思?


0xC000021A
STATUS_SYSTEM_PROCESS_TERMINATED
{Fatal System Error} The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). The system has been shut down.


[ 本帖最后由 2011足迹 于 2011-5-28 20:10 编辑 ]
作者: kcyou    时间: 2011-5-30 00:37
标题: 回复 #53 haiou327 的帖子
能不能通过NAUTORUN.CMD 搜索UD内的MINIPE文件夹内的WXPE.WIM及TOOLS.WIM 并且通过nmount.exe将二级内核及TOOLS.WIM 加载到X盘
作者: 2011足迹    时间: 2011-5-30 10:19
遇上一悲剧的问题。CreateProcess问题解决了,for /F调用命令的时候却出现冲突。。谁有空帮忙看看。type命令大家可以编译测试,for /F读取文件大家也可以测试一下
作者: haiou327    时间: 2011-5-30 10:21
标题: 回复 #74 2011kcyou 的帖子
NativeCmd和NativeShell到目前足迹还没有考虑支持UD分区吧

[ 本帖最后由 haiou327 于 2011-5-30 15:09 编辑 ]
作者: hhh333    时间: 2011-5-30 16:42
终于将native的XPPE和2003PE调试好了,注要根据NicTense发布的那个版本的文件列表,在此处有下载。一些体会:
1、03中要用到SFC_OS.DLL,由于此文件要用到NTDLL.DLL,所以这个文件要放二级内核中,否则网卡驱动、IE注册安装都会失败。
2、要支持网卡和声卡的安装二级内核中还必须增加
\DRIVERS\NDIS.SYS
\DRIVERS\NDISWAN.SYS
\DRIVERS\PORTCLS.SYS
\DRIVERS\RDBSS.SYS
\DRIVERS\redbook.sys
\DRIVERS\sbp2port.sys
\DRIVERS\srv.sys(注:仅XP需要)
\DRIVERS\SWENUM.SYS

经试用有以下一些优势:
1、usb1.x的机器进03PE(30M)左右内核,载入时间>8分钟,改native后进桌面大致2分钟;
2、原来我的那个03PE在384M才能同时驱动3卡,用native后256M下没有问题;
3、其它情况下,native比其他内核大致快5~10秒;

目前我看到的优点就是这么多,实际上主要是native能够充分利用img内核的优点,在没有它的时候,一般进系统以后可以往系统盘挂东西,再开fbwf(或不开也可),有了它在启动阶段可以将系统文件(即所谓的二级内核)往系统盘挂,而挂载方式速度和内存占用上比载入方式有明显优势(当然,这个也是以牺牲以后的运行速度为代价的,因为挂载只是相当于建立一个链接;还有一个大缺点就是挂载的目标盘原文件会丢失,如果是二级内核需要一级内核中的文件则不可避免地出现文件重复!)

[ 本帖最后由 hhh333 于 2011-5-31 08:48 编辑 ]
作者: amd1969    时间: 2011-5-30 22:11
什么情况?不知道怎么用、
作者: andos    时间: 2011-6-1 07:17
PE3情况:
R28好像有些问题,同样用R25可以进桌面
但是R28就去到ncmd,似乎是有一些地方出错了,
应该是调用不到N7Z,因为dir没看到解压的文件,也就是没解压到吧

  1. for %%i in (Z W V U T S R Q P O N M L K J I H G F E D C) do (
  2. if exist %%i:\BOOT\7PE.7Z (
  3. set PE=%%i:\BOOT
  4. )
  5. )
  6. if exist %PE%\7PE.7Z %windir%\system32\N7Z.EXE xs %PE%\7PE.7Z X:\
  7. if exist %windir%\system32\PECMD.EXE exit
复制代码

作者: chenall    时间: 2011-6-1 10:01
标题: 回复 #77 hhh333 的帖子
我认为二级内核少数文件重复和启动速度比起来。
这个不能算缺点,即使文件需要全部重复,打包起来也不过是多占用一点空间而且,这个是可以接受的。

作为维护使用的话,只要能尽快启动可以操作就行了。
作者: 2011足迹    时间: 2011-6-1 22:45
原帖由 andos 于 2011-6-1 07:17 发表
PE3情况:
R28好像有些问题,同样用R25可以进桌面
但是R28就去到ncmd,似乎是有一些地方出错了,
应该是调用不到N7Z,因为dir没看到解压的文件,也就是没解压到吧

for %%i in (Z W V U T S R Q P O N M L  ...

最好提供详细的内容..
抽空看看
作者: andos    时间: 2011-6-2 09:17
原帖由 2011足迹 于 2011-6-1 22:45 发表

最好提供详细的内容..
抽空看看

我贴个图


应该是N7Z没有被调用到吧,可能是未被传递?
作者: down_up    时间: 2011-6-2 14:33
ncmd什么时候能够批量应用呀?下载了论坛上面两个NCMD,都有点不完美,但是,比起pecmd的128内存,ncmd可以在64以下启动。太神奇了。期待ing,可惜我不会
作者: guies    时间: 2011-6-2 22:07
可惜启动后,不能完全动到 Windows 目录,搬移、更名都不行。
如果可以的话,就可以简单的替换系统了。

[ 本帖最后由 guies 于 2011-6-4 00:11 编辑 ]
作者: dengxiong    时间: 2011-6-6 10:24
原帖由 haiou327 于 2011-5-30 10:21 发表
NativeCmd和NativeShell到目前足迹还没有考虑支持UD分区吧







不知道什么时候能够支持UD区呀,很期待这个功能…………
作者: 2011足迹    时间: 2011-6-7 23:51
原帖由 dengxiong 于 2011-6-6 10:24 发表







不知道什么时候能够支持UD区呀,很期待这个功能…………

还是希望有人能提供驱动级支持...直接读取效率太低...
作者: kkwy    时间: 2011-6-8 05:53
标题: 回复 #77 hhh333 的帖子
hhh333 的 native 03Pe,见:http://bbs.wuyou.net/viewthread. ... p;page=8#pid2244022
中用的是2011-5-25的 NativeCmd.rar
将其换成 2011-5-30的 NativeCmd.rar
会出错:        stop: c0000218 {registry file failure}
        The registry cannot load the hive (file) : \SystemRoot\system32\config\security
。。。。
作者: down_up    时间: 2011-6-10 14:32
求高手做样本ncmd pe,让新手们可以DIY
作者: 一地鸡毛    时间: 2011-7-2 10:29
期待Native版的reg命令。
作者: 2011足迹    时间: 2011-7-19 02:54
有新版本发布了...自己顶一下..
作者: zxw    时间: 2011-7-19 08:48
重大突破,支持。下载测试备用。
作者: 2010laishiyu    时间: 2011-7-19 14:18
我来顶楼主呀,越来越强大了
作者: 135956    时间: 2011-7-19 15:33
reg命令呼之欲出。。。。我喜欢。
作者: thttht    时间: 2011-7-19 16:19
有新进展了!太好了,下载试试!!!
作者: wjh123    时间: 2011-7-20 07:43
期待!!!!!!!!!!!!
作者: 2011足迹    时间: 2011-7-20 15:33
reg和xcopy命令编译完成..但是却遇到了一个问题..开启新的程序时argc和argv参数错误..这个也就是为什么之前调用外部程序失败的原因..不知道有没有人能看看是怎么回事...一直没有找到问题所在..
作者: sp_star    时间: 2011-7-20 19:43
是不是像这样"aaa bbb"带空格的参数被识别为2个?
作者: 2011足迹    时间: 2011-7-21 00:18
原帖由 sp_star 于 2011-7-20 19:43 发表
是不是像这样"aaa bbb"带空格的参数被识别为2个?

这个倒是不是..
是C语言中main函数中的两个参数..int main(int argc ,char *argv[])
调用程序时得到argc=0
在程序中使用GetCommandLineA和GetCommandLineW还是可以得到正确的参数的
查找不到原因..看了一下代码...没有发现什么问题..
作者: andos    时间: 2011-7-21 09:15
build32.bat 生成不出reg.exe
但build32_6.bat就可以

*版本是r35
作者: 2011足迹    时间: 2011-7-21 09:36
原帖由 andos 于 2011-7-21 09:15 发表
build32.bat 生成不出reg.exe
但build32_6.bat就可以

*版本是r35

好像是这样..
build32.bat生成的是nt5.2(2003)的版本build32_6.bat生成的是6.1(win7的版本)..
生成reg的时候好像是因为一些函数在nt5中没有,所以就生成不了..
我是在win7中编译调试的...所以暂时没考虑nt5的情况
作者: 2011足迹    时间: 2011-7-22 16:31
一点小的进展...
弄明白了argc和argv丢失的问题..
新版本很快会出现...
加油..




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3