2006年02月07日

§ Lesson 1 A puma at large 逃遁的美洲狮

 

New words and expressions 生词和短语

puma                         n. 美洲狮

spot                           v. 看出,发现

evidence                    n. 证据

accumulate                v. 积累,积聚

oblige                        v. 使感到必须

hunt                           n. 追猎;寻找

blackberry                  n. 黑莓

human being                 人类

corner                        v. 使走投无路,使陷入困境

trail                            n. 一串,一系列

print                           n. 印痕

cling (clung, clung )    v.

convince                    v.使信服

somehow                   adv. 不知怎么搞地,不知什么原因

disturb                       v. 令人不安

 

学习词汇时仅知道汉语语义是不够的,要把单词放在语句中体会其应用

学习关键句型结构时则要把它放在段落结构或文章里

 

spot  v. 看出,发现

pick out / see / recognize / catch sight of

eg: A tall man is easy to spot in the crowd.

He has good eye for spotting mistakes. 他有敏锐的识别错误的能力。

spot(做动词时候) = see:强调结果、辨别出、看见、识别、发现。

find 强调发现的结果。

find out 查出事实真相。

discover 做出重大发现

notice 注意到

observe 观察

watch 观察活动中的人或画面

 spot n. 斑点

eg: There is a white spot on the shirt.

on the spot

1,立刻,马上(at once, immediately

Anyone breaking the rules will be asked to leave on the spot.

2,at the place of the action 在现场

Wherever she is needed , she is quickly on the spot.

 

evidence [u]n. 证据

When the police arrived, he had already destroyed the evidence.

evidence=proof

in evidence:显而易见的.

He was in evidence at the party.

evidently adv.

evident adj.

 

accumulate vt,vi. 积累,积聚

accumulate  强调积累的过程

As the evidence accumulates, experts from the zoo felt obliged to investigate.

gather vt. 聚集把某人召集在某处

collect 收集采集

assemble  集合集会 vt. 装配

hoard  大量地贮存

The squirrel hoards up nuts for the cold winter.

hoard up= store up

amass 积聚主要用于诗歌和文学作品

 

oblige  v. 使感到必须

feel obliged to do sth.感觉有必要做某事

be obliged to do sth 被迫做某事

 

hunt  n. 追猎;寻找

2006年02月05日

China 
 
Deep freeze
Feb 2nd 2006 | BEIJING 
From The Economist print edition
 
 
The authorities silence yet another inconvenient voice TO JUDGE from their recent actions, it would appear that China’s political commissars are feeling rather jittery. On January 24th, they shut down Bing Dian (Freezing Point), a publication that has made a name for itself with outspoken pieces on sensitive topics. The closure was merely the latest in a series of such moves against publications that have pushed the ever-present limits on expression in China.

inconvvenient voice   不是理直气壮的,底气不足的声音

judge form 评论。。。

china’s political commissars are feeling rather jittery 中国的政治派别显得十分神经

shut down bingdian     中国青年报的冰点栏目

with outspoken pieces on sensitive topics 在敏感的问题上直言的发表,其实说偏激的发表也是可以的,因为都是写垃圾教授写的

The closure was merely the latest in a series of such moves against publications that have pushed the ever-present limits on expression in China 这个关闭的栏目仅仅是最近一系列针对刊物的措施,主要是变革中国经常性的限制的价值观

For Bing Dian, the proximate cause appears to have been a recent piece which criticised the nationalistic undertones of history texts used in schools. Bing Dian had previously attracted attention and official criticism with articles about corruption, Taiwan and—perhaps most irritating to the powers that be—heavy-handed political interference in the work of the media. In the case of Bing Dian, the powers in question are probably the highest in the land. The paper is a weekly supplement in the China Youth Daily newspaper, which is affiliated to the Communist Party Youth League. The Youth League, in turn, is the institutional power base of China’s president and Communist Party chief, Hu Jintao, so Mr Hu was likely to have been directly involved in the decision to shut Bing Dian down.

the proximate cause 最近的原因,事件

nationalistic 国家主义的

undertones of history text 关于历史肤浅的认识

previously attracted attention and official criticism with articles about corruption 先前的文章主要是关于腐败的文章和对政府的批评

Taiwan and—perhaps most irritating to the powers that be—heavy-handed political interference in the work of the media. 台湾,或者很多能引发冲突的,在媒体中引起政治冲突的

a weekly supplement 周末增刊

so Mr Hu was likely to have been directly involved in the decision to shut Bing Dian down.              likely have been               胡似乎直接就决定封了冰点



Li Datong, the founder and editor of Bing Dian, was nevertheless quick to strike back, and sharply. He told a Hong Kong newspaper that the closure was part of a long-nurtured scheme to silence the paper’s “pursuit of democracy, rule of law, deliberation, liberty and rights”. Calling the closure “a despicable precedent”, Mr Li also accused authorities of timing their move in the run-up to the lunar new-year holiday in hopes that it would attract little attention. He followed with an open letter lambasting narrow-minded officials for using “dictatorial methods to impose controls that deaden what should be a lively political scene.”

was nevertheless quick to strike back, and sharply.

the closure was part of a long-nurtured scheme to silence the paper’s “pursuit of democracy, rule of law, deliberation, liberty and rights”.

a despicable precedent

Those officials, alas, have been at it for a long time. An internet news search on terms such as “China AND media crackdown” will yield an abundant haul of stories going back many years—unless, of course, that search is conducted inside China, where software filters will block access to much of the relevant material. Despite occasional periods of relatively greater liberalism, the censorship pendulum in China only ever swings within a fairly narrow range. The past year saw a steady stream of cases in which editors and reporters were disciplined, dismissed or even jailed for violating strict official guidelines. The internet has come under particularly tight scrutiny.

Service providers, foreign and domestic, are obliged to block access to a long list of suspect sites. In its 2005 Press Freedom Index, a Paris-based rights group, Reporters Without Borders, put China near the bottom—in 159th place out of 167 countries ranked. The group has identified 32 imprisoned Chinese journalists. He Qinglian, a Chinese journalist and social critic now living in exile in the United States, says that Bing Dian is just the latest entrant to China’s “graveyard of those who have sacrificed themselves for press freedom.” She says that the government knows that rapid development and modernisation are generating enormous inequality and social tension, and uses its stultifying media restraints to keep people from knowing too much and from organising. “Chinese leaders”, she predicts, “will continue to use these measures for as long as they rule.”

就是下面的这个混蛋教授,不知他是怎么想的

.

.

.

.

冰点特稿第574期
现代化与历史教科书
2006年01月11日
中山大学教授 袁伟时

 
 
  21世纪的中国人,面对的是顺之者昌、逆之者困的全球化趋势。与此同时,中国的现代化事业进入了关键时刻。在这个年代,决定公民和国家发展成败的最重要条件是制度环境,但公民的心智状态对自己乃至国家和社会发展的影响也十分巨大。

  20世纪70年代末,在经历了反右派、大跃进和文化大革命三大灾难后,人们沉痛地发觉,这些灾难的根源之一是:“我们是吃狼奶长大的。”20多年过去了,偶然翻阅一下我们的中学历史教科书,令我大吃一惊的是:我们的青少年还在继续吃狼奶!

  “以史为鉴”、“前事不忘,后事之师”,这是中国人耳熟能详的名言。屈辱、挫折、兵连祸结、前仆后继,一部中国近代史蕴藏着多少血泪和经验教训!我们有责任将历史真实告诉我们的青少年,让他们永志不忘。这是帮助他们成为现代公民的必由之路。如果天真纯洁的孩子吞食的竟是变味乃至有意无意假造的丸丹,只能让偏见伴随终生,甚至因而误入歧途。

  现在是正视我们自己的历史教科书问题的时候了。现从几个具体的历史事件谈起。

  火烧圆明园是不是无法避免的?

  火烧圆明园是英法侵略军犯下的不可饶恕的罪行。事情为什么会弄到如此地步?140多年过去了,我们理应冷静地考察双方的应对得失,吸取教训,让各国人民更好地共处。这一事件是“第二次鸦片战争”的恶果之一。人民教育出版社历史室编著的《中国历史》第三册,是被普遍采用的九年义务教育三年制初级中学教科书。它是这样评述这次战争的:

  一、关于战争起因。

  这部教科书写道:“1856年3月,法国天主教神甫马赖,潜入广西西林地区胡作非为,被当地官吏处死。这就是所谓的‘马神甫事件’。后来,法国以此为借口,伙同英国发动侵略战争。同年10月,广州水师在中国商船‘亚罗号’上,缉捕了海盗和水手。英国领事无端干涉,硬说‘亚罗号’是英国船要求中国方面释放被捕的人,并向英方赔礼道歉。两广总督叶名琛怕事态扩大,释放了被捕的水手,但拒绝道歉。这就是所谓的‘亚罗号事件’。1856年10月,英国首先挑起战争,炮轰广州,第二次鸦片战争开始。”

  这里说的亚罗号事件大体符合历史事实。至于杀法国天主教神甫马赖(Auguste Chapdelaine),至今仍是一笔糊涂账。马氏是1856年2月29日被广西西林代理知县张鸣凤所杀的。直至法国公使查问,张鸣凤仍然矢口否认,说根本没有这回事。致使广西按察使和两广总督到了1858年初还信以为真,据此回答法国公使和上奏朝廷。

  1844年10月订立的中法《黄埔条约》规定,法国人只准在五口通商的双方“议定界址内”活动,“法兰西无论何人,如有犯此例禁,或越界,或远入内地,听凭中国官查拿,但应解送近口法兰西领事官收管;中国官民均不得殴打、伤害、虐待所获法兰西人,以伤两国和好。”

  马氏1842年起,便到西林传教,《黄埔条约》订立后仍不离开,这是违反条约的错误行为。但把他处死,显然是西林地方官员的行为,违反了应把拘捕的法国人解送领事的条约义务。直至现在人们仍无法确定马氏确有该处死刑的哪些罪。按照程序正义优先的法学观点,中方无疑理亏。教科书对此事的评述是不准确的。

  还要指出,教科书只字不提引发这次战争的两条根本原因:一是英国政府要求清政府忠实履行《江宁条约》的规定,其中重要一点是让英国官员和商人可以自由进入广州城。让洋人进城,现在看来,完全是不值一提的小事,当时在五口通商的其他四口尽管也有过大小不一的纠纷,但都一一化解,没有酿成巨祸。惟独在广州,却惊动朝野上下,闹得天翻地覆,开各地反入城斗争的先河,历时十多年无法解决,直至兵戎相见。

  二是《望厦条约》规定:“所有贸易及海关各款恐不无稍有变通之处,应俟十二年后,两国派员公平酌办。”《黄埔条约》亦规定:“若有应行更易章程条款之处……核计满十二年之数,方可与中国再行筹议。”修改有关的通商条款,本属平常外交事务,清政府也一再拖延,加深了双方的矛盾。

  关于挑起这次战争的原因,当时的有识之士就有所反思。深悉内情的薛福成沉痛地说:“英人初志在得入城见大吏,借以通隔阂、驭商民,乃粤民一激再激,叶相(叶名琛)复一误再误,使拱手而有粤城……益知中国易与,遂纠法、俄、美三国兵船北上,驶入大沽,阻我海运,立约而还……粤民激于前此大府议和之愤,万众一辞,牢不可破,必阻其入城一事以为快,屡请屡拒,纷纭者二十年,而大沽之失,天津之约,皆成于此,由今观之,甚无谓也。”晚清曾国藩、李鸿章、冯桂芬、郭嵩焘等人屡以“勿以小嫌酿大衅”相告诫,其中就包含了以广州反入城斗争为开端的惨痛教训。

  同属中华人民共和国,香港的中学历史教科书就比大陆编得高明。它把这次战争的起因归结为四点:1.外人入城问题。2.续修条约问题。3.阿罗号船事件。4.马赖神父事件。这样说符合历史实际,无损中国国家利益,有利于年轻一代学会冷静地分析历史问题,显示出编者是合格的历史学家。令人不解的是:为什么不向这些本国的同行学习呢?

  二、关于战争过程。

  1858年,大沽被占,英法侵略者兵临天津城下,英法俄美等国先后迫使清政府签订了《天津条约》。虽然丧失了不少权利,问题总算有个着落,双方还议定翌年在北京互换批准书,彻底完成法定程序。如果照双方的协议办理,导致火烧圆明园的英法联军再一次入侵是有可能避免。

  可是,谁也没有料到纯属程序性的最后一步还会节外生枝,招来更大灾祸!教科书是这样写的:“1859年,英国公使和法国公使各率一支舰队北上大沽口,准备进京换约。清政府指定换约代表由北塘登陆,经天津至北京,并要求各兵船武装人员不得登岸。英法公使却仗恃武力,坚持要从大沽口溯白河进京。他们蛮横地率舰队闯入大沽口。防守大沽炮台的士兵开炮打击入侵者。炮弹准确地落在侵略军的军舰上,打沉了四艘,打坏了六艘,其余三艘挂起白旗逃跑了。在炮战的同时,侵略军900人企图登陆,也被打退。侵略军死伤几百人。大沽一带人民冒着枪林弹雨,给战士送饼送面,表现了高度的爱国热情。”在编者笔下,这是一曲爱国英雄进行曲,主角是士兵和普通百姓。可是,稍加推敲,便有很多疑问。

  从后果看,这一仗显然打错了。翌年,英法联军再次入侵,招致北京被占,圆明园被烧。续订《北京条约》,不但规定原订的《天津条约》继续有效,还招来其他新损失:对英法的赔款分别由四百万两和二百万两一律增至各八百万两;割让九龙司;允许法籍传教士在中国自由传教,“并任法国传教士在各省租买田地,建造自便”,为日后连绵不断的教案种下祸根。如果不打,不是对中国更有利吗?

  人们理所当然应该追问:公使走哪条路进京,真有那么重要,乃至不惜一战?双方意见分歧有没有认真交涉?真的是士兵自行开炮还是奉命行事?如果是前者,这是触犯军纪造成严重后果的大错,能算是爱国英雄的义举吗?如属后者,是奉了什么样的命令?

  复查史实,这根本不是什么爱国英雄的壮举,而是愚昧的咸丰皇帝和僧格林沁亲王犯下的大罪。而且分歧不是教科书说的走哪条路进京,而是要英法使者绕个大弯进天津。当时在僧王幕下的郭嵩焘在日记中留下这样的记录:1859年4月10日“怡亲王至营……言奉旨密商一语:如夷人入口不依规矩,可悄悄击之,只说是乡勇,不是官兵。予曰:凡事须是名正言顺,须缓缓商之。怡邸愦愦可笑。僧邸商酌再三,欲令其由北塘入口,绕道至天津……辩论再三始定局,附片奏明。”

  《北京条约》订立后,他更具体叙述了当时的情况:“夷祸成于僧邸之诱击。去岁之役,先后奉诏旨十余,饬令迎出拦江沙外晓谕。洎夷船入内河九日,僧邸不一遣使往谕。去衣冠自称乡勇,薄而击之。仆陈谏再四,又虑语言不能通晓,两上书力争。”曾国藩对他的幕僚说过:“咸丰九年,洋人来换和约,僧忠亲王诱而击沉其船,天下称快。十年,夷人复至……京师不守,几丧天下。某谓僧邸此败,义当杀身以谢天下矣。”他们说的情况,同当时在现场的英国公使卜鲁斯的报告如出一辙。英法军舰6月16日已经到达,直到25日早晨才接到直隶总督恒福的照会,而当时军事行动已经开始。这些史料可以归纳为这么几点:

  1.咸丰皇帝决定在一定条件下,可以让官兵假扮乡勇,“悄悄”袭击洋鬼子。同时,他又十余次下令,要先“晓谕”洋人,先礼后兵。

  2.僧格林沁忠实执行了“悄悄击之”的旨意,但没有事先晓谕;也坚决拒绝手下大臣的劝阻;并且是要洋人从北塘登陆,绕道至天津的设计者。

  3.对这一丧权辱国的横祸,以曾国藩、郭嵩焘、吴汝纶等为代表(还包括李鸿章、冯桂芬等人)的比较清醒的官僚和士绅,已经有过严厉的批评和讽喻。

  令人震惊的是:时至20世纪90年代,我们的教科书,仍然按咸丰皇帝和僧格林沁的调子唱歌,不同之处仅在把“乡勇”换成“士兵”!

  说到这里,我们可以回答火烧圆明园是不是可以避免的问题了。面对咄咄逼人的强敌,作为弱势的大清帝国一方,明智的选择是严格执行现有条约,避免与之正面冲突,争取时间,改革和发展自己。而当时的政府和士绅,完全被极端的情绪支配,在小事上制造违约的蠢行,结果酿成大祸。如果清政府决策层和有关的地方督抚不是那么愚昧,这场灾祸是有可能避免的。可是,朝野上下的认识水平和专制的决策程序,是历史的积淀,不是朝夕所能改变;侵略的本性又决定了他们不可能成为文明之师;于是,这场灾祸又是难以避免的。

  是爱国壮举还是有悖文明行为

  再来看看教科书的作者对义和团事件的评述吧。

  教科书正确揭露了“八国联军侵占北京以后,烧杀抢掠,无恶不作”;“在八国联军进攻天津的时候……(俄国)制造了骇人听闻的海兰泡大屠杀惨案。俄国军队还强占了中国江东六十四屯,残酷屠杀当地居民。”此外的论述只能说是错误连篇。

  一、教科书没有只字提及义和团敌视现代文明和盲目排斥外国人以及外来文化的极端愚昧的行为。

  义和团毁电线、毁学校、拆铁路、烧洋货、杀洋人和与外国人及外国文化有点关系的中国人……凡沾点洋气的物和人,必彻底消灭而后快。即使义和团真的立下了“扶清灭洋”的伟大功勋,也不能回避它的这些反文明、反人类的错误,何况正是这些罪恶行径给国家和人民带来莫大的灾难!这些都是众所周知的史实,也是中国人不能忘记的国耻,而我们的少年儿童必读的教科书却偏偏闭口不谈。

  教科书也谈到拆毁铁路。它是怎么说的呢?“1900年6月……八国侵略军2000多人,由英国海军司令西摩尔率领,从大沽经天津向北京进犯。义和团拆毁从天津到北京的铁道,奋起狙击侵略军。侵略军在廊坊一带被义和团包围,死伤多人,狼狈逃回天津。”如此说来,拆毁铁路不过是抵抗侵略者迫不得已的措施。实际情况怎样?

  1900年5月28日(阴历五月初一),直隶总督裕禄致电总理各国事务衙门:“二十九夜(5月27日)先闻涿州至琉璃河一带猝被拳匪将铁路焚毁,讵今早由琉璃河至长辛店一百余里沿途铁道车站桥梁并局所洋房,均有拳匪蜂起焚烧”。与此同时,各地纷纷告急:“刻下电线又阻……至长辛店线阻,由琉璃河至涿州线,被匪徒砍断,所有电均被阻滞。”他们破坏这些设施完全出于对外来事物的敌视,而不是为了抵抗侵略者不得不采取的应急行动。同时,这类行动波及各地,不是局部性的偶发现象。也就是说,这是蓄意破坏财产的罪行,而不是某些史家说的抵抗侵略者的功勋。从时间看,西摩尔军从出发到被迫撤回天津是6月10日至26日之间的事,而在此之前拆毁铁路、电线,焚烧车站、抢掠财产的急报,已纷至沓来。义和团烧杀抢掠、敌视和肆意摧毁现代文明在前,八国联军进军在后,这个次序是历史事实,无法也不应修改。

  二、教科书也没有谴责清政府高级官员及义和团乱杀无辜,烧杀抢掠的野蛮、残忍的罪行。

  最有代表性的是山西巡抚毓贤的作为。六月初一(6月27日),他将太原洋人办的医院烧掉,同时“将省中洋人,诱令迁居一处。当于教堂内搜出妇女二百一十一口,年老者数人,而五六岁十余岁至二三十岁者居多……于六月十三日,不动声色,带领兵勇,前赴洋人聚居之处,亲自兜拿。该洋人等尤敢拼力抗拒,奴才麾令勇敢数人,冒死突进,将洋人大小男女四十四口,及同恶相济的教民十七名,一齐擒获,立即绑赴市曹,同时正法”;“寿阳县秦锡圭拏获滋事之洋人七名口,押解前来,一并将其立正典刑。是晚北门教堂亦为拳民焚烧,省城洋人教堂已无遗迹”。当时的报刊还报道:“寓晋西人,得京师乱耗。群求毓贤保护。不料竟诱聚而歼之,且手刃数人焉。”

  毓贤的行为不是孤立的。所有不思进取的顽固分子,都是传统文化中最落后、野蛮的成分的继承者,这类顽固官僚趁机为非作歹的事例不胜枚举。例如,辅国公载澜是奉旨会同载勋、刚毅“统率”京津义和团的宗室,其残暴就不让毓贤:“京师乱起,载澜从拳匪入人家,大索,得毡布及他物,皆以教民论,扑杀之,虽宗室大臣不免”。

  再看看义和团的所作所为吧。前人早已指出,不能把所有参加义和团的民众都视为匪徒,他们不少是盲从的愚民,但混迹其间的确实不少是土匪和流氓。总计在义和团事件中,全国各地1900年6月24日~7月24日期间,被杀外国人231名,其中儿童53名。他们大都死于义和团之手。至于中国的教徒(教民)和所谓“二毛子”被杀的,更是没有算清的糊涂账,其中绝大部分是被义和团杀死的,官兵也杀了一些。仅山西一省,就有中国天主教徒5700余人被杀。奉天(辽宁)全省“教民人命千余”。“而直隶(河北)全省杀人焚屋之案,几于无县无之。其杀人多者,一县竟至一二千名口”。甚至浙江亦“抢劫、焚毁教民家室至一千余家之众”。

  “受害最烈”的北京,当时有关人士留下不少实录:1900年6月18日“城中日焚劫,火光连日夜……夙所不快者,即指为教民,全家皆尽,死者十数万人。其杀人则刀矛并下,肌体分裂,婴儿生未匝月者,亦杀之残酷无复人理”。“法国天主堂在西安门内西什库,刚相(刚毅)尝督兵攻之,亦不能破,拳实不敢前,哗噪而已。拳匪既不得志,无以塞后意,乃噪而出永定门。乡民适趋市集,七十余人悉絷以来;伪饰优伶冠服儿童戏物,指为白莲教;下刑部一夕,未讯供,骈斩西市。有妇人宁家,亦陷其中,杂诛之,儿犹在抱也……毓鼎上疏力争之,谓:‘谋乱当有据,羸翁弱妇,非谋乱之人;优装玩具,非谋乱之物……’疏入,狱已具”。

  6月16日,“是日九点中,团匪烧大栅栏德记药房,延烧粮食店、灯市街、观音寺、珠宝市……共计店铺四千余家,火至天明未息。匪禁水会救火”。这个京师最繁华的地区于是毁于一旦。总的说来,“京师盛时,居人殆四百万。自拳匪暴军之乱,劫盗乘之,卤掠一空,无得免者。坊市萧条,狐狸昼出,向之摩肩击毂者,如行墟墓间矣。”这是所谓义和团“革命”的后果之一。

  开头,民众与传教士和教民的矛盾令人同情;可是,他们后来的作为远远超过与外来宗教矛盾的界线。事件过后直至民国初年,朝野各界将这个组织定性为拳匪是有足够根据的。

  三、令人无法理解的是它对慈禧的专制淫威惹来滔天大祸竟只字不提!

  义和团兴起之初,袁世凯就上奏“其用以惑人者,谓能避枪炮。然迭与乡团、教民、兵役格斗,一遇枪炮,辄伤毙多人,瓦解鼠窜……其藉以动人者,谓图灭洋教。然上年春夏间,在曹州、济宁各属,掠教民一千一百余家,并掠及平民二百余家。秋冬间在东阳、济南各属,掠教民六百余家,亦掠及平民百余家。内多掳架勒赎之案,直与盗匪无异。故教民既被其殃,而平民亦多受其害。”而且有些地位比袁世凯更高的大臣(如北洋大臣、直隶总督裕禄等等)也提出了类似的意见。慈禧充耳不闻,比较清醒的众多大臣只好保持缄默,品质不良之辈则乘风转舵,谄上邀宠(如裕禄)。

  一个在六年前连一个“敢于犯上”的“蕞尔小国”———日本都无法招架的弱国,居然要同时向包括日本在内的11国宣战!《国际法》传入中国60年后,竟要派兵围攻驻华使馆!

  为了决定和战大计,从1900年6月16日开始,慈禧一连四天召集王公大臣六部九卿开御前会议。在会上吏部侍郎许景澄、兵部尚书徐用仪、户部尚书立山、内阁学士联元等人先后提出不能听信邪术、不可围攻使馆、不能主动对外宣战。总理各国事务衙门大臣袁昶和许景澄在两人联名的奏折中写道:“伏以春秋之义,两国搆兵,不戮行人,泰西公法,尤以公使为国之重臣,蔑视其公使,即蔑视其国。兹若任令该匪攻毁使馆,尽杀使臣,各国引为大耻,联合一气,致死报复……以一国而敌各国,臣愚以谓不独胜负攸关,实存亡攸关也。”慈禧不但不接纳这些浅显的常识,而且大发专制淫威,把他们的脑袋砍掉!

  同时,包括毓贤杀洋人在内的罪行,大都发生在6月21日下诏与各国宣战、6月24日命各省督抚杀洋人以后。首犯是慈禧,毓贤、载漪等人不过是凶狠的执行者。

  四、教科书对一些史料的运用也很不严肃。

  “义和团,起山东,不到三月遍地红。孩童个个拿起刀,保国逞英雄。”教科书以突出位置刊载了这一歌谣,说是“义和团歌谣”。可是,笔者孤陋寡闻,读过的现存义和团传单、揭帖等书面材料中找不到可以作为根据的史料。而后来调查的所谓口头传说,往往是后人加工乃至创造的,根本不足为凭。

  教科书又说:“北京东单西裱胡同有座于谦庙。为了学习于谦的爱国精神,1900年4月,义和团进城后,把神坛设在这里。”一切学术观点都应拒绝牵强附会,要经得起反驳。载漪、载澜等祸国殃民的满清权贵家里都设有义和团神坛,这又是向他们学习什么?

  在我国,除了上述人民教育出版社出版的教科书外,还有一套可供选用的沿海地区教材。号称沿海版,有的地方史实错误更严重,是非观念更加糊涂。

  例如,对义和团事件的论述,它增加了这么两句话:“6月中旬以后,义和团群众开始围攻侵略者据点西什库教堂和外国使馆区。清政府却暗中派人给被围困的侵略者送去粮食、蔬菜、酒、水果等,表示慰问。”每句话都错得一塌糊涂!

  首先要问:西什库教堂是“侵略者据点”吗?在义和团事件前,这不过是普通的法国天主教堂,没有材料足以证明它是“侵略者据点”。义和团期间,从1900年6月13日起几天内就将北京大部分教堂和洋楼烧毁,连带烧掉数千家民居和商店,劫余的西什库教堂和东交民巷使馆区聚集了大批逃生的外国人和中国教民。这个教堂的逃生者,在清政府不能维持正常社会秩序的情况下,固守反抗屠杀,于理于法都无可指责。说这个教堂是“侵略者据点”,完全是信口开河。

  其次,围攻东交民巷是奉慈禧的旨意,主力是董福祥的甘军和荣禄的武卫中军,是他们犯下的罪行,义和团则是助纣为虐。含糊其词,仿佛此举是义和团自发的爱国义举,不但歪曲了历史真相,也掩盖了清政府践踏国际法的罪行。再次,对西什库教堂和使馆区的进攻,充分体现了专制统治者极端愚昧无知和残暴;时至20世纪90年代仍然正面予以肯定,这是对国际法的无知,已经沦为对国耻的颂扬,也忘记了“反对封建专制”的责任!

  再看第二句。清政府确实曾派人给被围困的外国使馆送过生活日用品,这是奉旨公开进行的,说是“暗中”于史无据。当时,清政府内部比较清醒的大臣一再上奏,要求按照国际惯例保护外国外交人员和外国人;东南各省的督抚甚至公开声明不再承认6月21日宣战后的“伪诏”。迫于这些压力,加上她色厉内荏,要预留“转圜”余地,不得不作出这样的姿态。不管是真是假,这是清政府内部理性尚未完全泯灭的表现。把它与义和团的行动对举而意含贬损,显然是很不恰当的。

  对义和团事件和八国联军评述比较全面的同样是香港的教科书。它既谴责义和团“大肆排外,杀教士、教民,连藏洋书、戴眼镜的人都不放过,且到处破坏,烧教堂、拆电线、毁铁路。”“日本使馆书记杉山彬、德国公使克林德先后被杀”;也指出“当时联军纪律极坏,任意焚掠屠杀,其中以俄、德两国军队及英国的印度兵最为残暴。”细致分析了义和团产生的背景:1.民族情绪。2.民生困苦。3.列强侵略。4.教案频生。还全面论述了辛丑条约的内容及它对当时和日后中国的深远影响。任何不抱偏见的人都会承认,这部教科书说的是真实的历史。

  如何面对被侮辱和被损害的状况

  出现这些现象与中国长期处于被侮辱和被损害的境遇息息相关。面对如是现实,可以有不同的心态。

  西方的入侵彻底改变了中国历史的行程。伴之而生的是天朝大国的表象破裂,大量民众在生死线上挣扎。人们顺理成章把这种状况归罪于“洋鬼子”;也谴责统治者腐朽、愚昧、软弱。一个辩论不休难于取得共识的问题是:内因还是外因是导致这个状况的主要根源?

  其实,完全可以从另外一个角度提出问题:这个状况迟迟不能改变的原因何在?如果有人说这是因为帝国主义者太凶狠了,这等于什么都没有说。经过长期、复杂、反复的博弈过程,在国际关系中可以逐步建立比较合乎多数人和多数国家长远利益的“正义”秩序。当这个状况尚未出现以前,不会有救世主从天而降,慷慨代你维护国家利益。问题只能归结为面对这样的现实,如何才能走出困境?

  海内外的经验证明:后发展国家和地区(殖民地、半殖民地)改变不发达状况,改变被动局面的惟一道路,是向西方列强学习,实现社会生活的全面现代化。成败的关键在国内的改革。这是一个社会运行机制的全面改造过程。对那些文化自成体系,而对外来文化深闭固拒的国家说来,这是十分艰难的过程。以中国来说,从鸦片战争算起至20世纪初实行新政,仅是辩论要不要改革就整整花掉60年!至于改革取向,包括是通过革命手段还是通过渐进的改革开辟前进道路,更是头绪繁复。不过,有一条是肯定无疑的:必须千方百计争取一个和平的国际环境,为国内的改革和建设赢得充分的时间。如果此说大致不差,回头再看义和团,对内,它是与社会前进方向背道而驰的反动事件。对外,乱杀洋人不但是反人道、反文明的罪行,也是极端愚蠢危害中国自身利益的暴行。

  有个流行多年为义和团事件辩护的论断:义和团避免了中国被瓜分。早在1989年已故历史学家李时岳先生已经详尽地驳斥了这一诡辩。不但4亿5千万两赔款(相当于当时将近6年的全国财政收入)像一支巨大的吸血管插进中国人的胸膛,而且给沙俄藉口,趁机制造了海兰泡和江东64屯惨案,7000多中国人被杀,江东领土全被吞没,大量俄军进占东北;华北地区在战争中死伤烧杀的损失难以数计。战后的瓜分阴谋更没有停止:英军进攻西藏,占领拉萨;德国派炮舰进入洞庭湖,并要求租借洞庭湖和鄱阳湖沿岸;英国则相应要求租借舟山群岛作为“补偿”!

  有人喜欢援引八国联军统帅、德国人瓦德西的这么一段话:“无论欧美日本各国,皆无此脑力与兵力可以统治此天下生灵四分之一,故瓜分一事,实为下策。”证明义和团化解了瓜分图谋。李时岳先生说得好:“瓦德西个人的观感并不能代表德国的政策,德皇一直把瓜分作为对华政策的基点,上述要求‘租借’洞庭湖和鄱阳湖沿岸的行动就是证明。只是由于帝国主义之间的矛盾,瓜分才没有实行。”

  把视野放得更宽一些,问题就更加清楚。前人早已指出:甲午战争、戊戌变法和义和团事件是一条割不断的历史链条。说得更准确一些是:甲午战争彻底暴露了大清帝国的腐朽,不少知识阶层从几十年迷梦中惊醒,反思自强运动不敢触及“自由不自由”这个根本问题的错误,形成了第一次群众性启蒙运动,改革也有新进展。是学习西方彻底改革,还是固守传统,不准变革,成了中国盛衰的关键,也是解读这段历史的基本线索。不幸,体现甲午战败后的变革进程进入高潮的戊戌变法以失败告终。戊戌政变标志着学西方、求变革的挫折和倒退;义和团事件不过是政变后固守传统反对变革的反动逆流的巅峰。换句话说,义和团事件对外使中国在被奴役的附属国的道路上继续沉沦,对内则举目皆是国破家亡的图景。

  走出把革命粗鄙化的文化心态

  2000~2001年之间,引起中国人关注的一个国际事件,是日本的教科书问题。一部右翼势力编纂的历史教科书掩盖历史真相,否认日本政府犯下的侵略罪行,激起包括中韩两国政府和人民在内的海内外朝野人士强烈抗议。这是伸张正义的斗争,而且这是20年间第四次了。1982、1986、1996年都曾出现新修教科书歪曲历史,一再在日本国内外激起公愤。这一日本思想文化领域的顽症,促使许多人形成一个极为深刻的印象:日本人缺乏忏悔意识。人们还进一步追问:为什么会出现这样死不认罪的现象?这是不是大和民族特有的缺陷?

  看看上述中国的教科书问题,一个合理的推断是,我们的近代史观也有类似的问题。当然日本是侵略者,中国是被侵略者,这是截然不同的。可是,两者也有共同点:社会的主流文化都对自己的近代史缺乏深刻的反思。

  从20世纪初开始,中国的有识之士一再提出要改造中国人的“国民性”。这些先驱用心良苦,但他们没有进一步追问:决定国民性的主要因素是什么?可以说,国民性是一国公民思维和行为方式的特点。任何民族都是从吃人生番演变过来的。作为一个群体,文明程度的高低和野蛮孑遗的大小,决定性的因素是受文化传统和制度制约的自我净化能力的强弱。

  被侮辱被损害的屈辱,给中国人构筑了新的思想定势。这突出地表现在长期以来形成的一个似是而非的观念:因为“洋鬼子”是侵略者,中国人怎么做都是有理,都应歌颂。这是爱国主义的要求。

  现在的历史教科书就是以此为指导思想的。热爱自己的祖国,理所当然。可是,如何爱国,却有两种不同的选择。一种是盲目煽动民族情绪;中国传统文化中“严华夷之辨”、“非我族类,其心必异”等观念已经深入骨髓。时至今日,余毒未清。新的版本是:中外矛盾,中国必对;反列强、反洋人就是爱国。在史料选择和运用中,不管是真是假,有利中国的就用。另一种选择是:以理性的态度分析一切;是其是,非其非,冷静、客观、全面地看待和处理一切涉外矛盾。

  现代化的基本精神就是理性化。如果我们认同这个基本观点,就应该引导中国人往这条道上走,让理性、宽容内在化,成为中国人的国民性,以利各国人民和各种文化和谐共处。在全球化迅猛发展的时代,企业之间和国家之间的利益冲突不可能泯灭;理性地认识和化解矛盾对任何国家和企业都是最好的选择。如果一涉外就是“反帝”、“反霸”,非把事情弄砸不可。

  例如,法是人类文明的结晶,社会运行的规则。国际条约是有法律效力的。人们可以指责这些规则和条约是列强主导下形成的,不利于弱国和贫苦民众。人们应该不断批判和揭露它的谬误,通过各种力量的博弈,形成新的规则,修订新的条约。可是,在没有修改以前,我们仍然不得不遵守它,否则就会造成不应有的混乱,归根到底不利于弱国和多数民众。

  19、20世纪中国人干了不少“无法无天”的事,义和团事件是其中的典型。值得重视的是不但至今有人把野蛮的行为说成是“革命”,而且到了20世纪90年代,有人竟把主张遵守现行国际条约的观点视为应该严加批判的卖国投降观点!

  说到底,这是把革命粗鄙化的流毒。

  必须清醒地看到,在社会领域,只有引发制度变革的行动,才称得上真正的革命。太平天国和义和团都不符合这个要求。这样的歪曲实际是把革命粗鄙化,迟早总要付出代价。

  不能轻视这些错误教育的后果。违反常识理性,以“革命”的名义故意歪曲历史真相,歌颂义和团的直接恶果在“文化大革命”中就暴露无遗。红卫兵火烧英国代办处,是义和团行动的翻版;“破四旧”和“反帝”、“反修”中体现的清除外来事物的疯狂,这些行动体现的内在理路,也与义和团的“灭洋”如出一辙。

  上述教科书的编写所呈现的理路,也没有什么不同。它们的共同点是:1.现有的中华文化至高无上。2.外来文化的邪恶,侵蚀了现有文化的纯洁。3.应该或可以用政权或暴民专制的暴力去清除思想文化领域的邪恶。用这样的理路潜移默化我们的孩子,不管主观意图如何,都是不可宽宥的戕害。

  为了培育理性的有法治观念的现代公民,以利于现代化事业,现在是纠正这些谬误的时候了。
 

2006年02月04日

State of the union

Running on empty

Feb 2nd 2006 | WASHINGTON, DC
From The Economist print edition

Not many new ideas from the president. But that may serve George Bush and the Republican Party rather well

Eyevine

GEORGE BUSH likes to boast that he doesn’t do “small ball”. Each of his previous four state-of-the-union addresses has had a big idea at its core—from cutting taxes to fighting terrorism to overhauling Social Security. And most of them have also contained big surprises—such as his identification of an “axis of evil” to his plan to spend $15 billion fighting AIDS.

This year the former impresario of the Texas Rangers had no choice but to play small ball. This is partly because this is his fifth outing; the big ideas have already been used. But it is mainly because he is being crushed under the weight of previous policies. America is in a fiscal hole (with a $319 billion deficit last year), thanks in large part to his tax cuts and spending increases; abroad, he is still struggling with the consequences of invading Iraq and unleashing democracy in the Middle East.

And yet Mr Bush seems to need a shot of political adrenaline. He goes into his sixth year in office with approval ratings of around 42%—lower than any post-war president except for the Watergate-logged Richard Nixon. Close to two-thirds of the population thinks America is headed in the wrong direction; half thinks that sending troops to Iraq was a mistake.

These dismal figures partly reflect Mr Bush’s favoured political strategy of firing up his conservative base and letting the rest go hang. But they are also testimony to a dismal 2005—a year in which Mr Bush failed to sell Social Security reform, saw precious little progress in Iraq and lost much of his reputation for competence (and compassion) with Hurricane Katrina.

Even in the best of circumstances history strongly favours the out party in the sixth year of a presidency, and these are not the best of circumstances. A significant majority of Americans tell pollsters that they would rather go in the direction outlined by congressional Democrats than that favoured by the Republicans. In Congress, the president’s party is wracked by corruption scandals and it faces a contentious leadership race in the House that will bruise egos. Meanwhile, the legislative system is severely overloaded, with lobbying reform, immigration reform, appropriation bills, budget reconciliation and the Patriot Act waiting in the wings.

Mr Bush’s main challenge with the state of the union was not easy: how do you come across as bold and purposeful when in fact you have boxed yourself into a corner? His answer was to recast his presidency as a bold alternative to the twin bogeymen of isolationism abroad and protectionism at home. This allowed him to repeat his familiar theme about democracy being an alternative to terrorism and to sing a paean of praise to the open economic policies that have helped America outperform its rivals. He also restated his support for a liberal immigration policy.

The latter is important: it suggests that he is willing to take on the wrath of the nativist right of his party. But the rest contained more rhetoric than substance. In a gesture towards Palestine, Mr Bush made the good point that there is more to democracy than just elections: there is the wider challenge of building a civil society. But the administration still seems flummoxed about what to do when Muslims use elections as an opportunity to elect extremists.

Indeed, Mr Bush spent a lot of time eschewing novelty and just blasting out the old favourite tunes. He urged Congress to renew his tax cuts, praised the Senate for confirming Samuel Alito and John Roberts to the Supreme Court, pointedly refused to compromise over the use of wiretaps, condemned Iran’s nuclear ambitions, pledged himself to preserving the family and said he wouldn’t have any truck with “creating human-animal hybrids”.

The Democrats duly sat pat while the Republicans stood up and cheered. But these conservative-pleasing bits of the speech represented a victory for the forces of the status quo rather than radicalism. For instance, Mr Bush called for the Iranian people to solve their own problems, but he didn’t suggest ways to foment popular resistance to clerical rule, as many neo-conservatives had hoped. He also quietly bowed to reality on another radical proposal, reforming Social Security; in a neat Texan two-step, he announced that he was now in favour of setting up a commission to look at the impact of the ageing baby-boomers on entitlement programmes.

So was there any sign of a presidency advancing? The most dramatic phrase in the speech was his promise to free America from its addiction to oil, but there was little real change in energy policy (see article). Two others may yet be significant—strengthening private medical accounts to make it easier for people to buy health insurance out of their own pockets and directing resources to improve America’s competitiveness in science and mathematics—but details on both are elusive.

So this year’s state of the union will hardly go down as a classic. But that does not mean that it did not serve its purpose.

To begin with, state-of-the-union speeches are not as important as political types maintain. Examine Gallup’s “pre-SOTU” and “post-SOTU” ratings going back to Jimmy Carter’s administration and you discover that, despite all the publicity, only ten out of 24 speeches boosted a president’s approval rating; in 12 it was lower and two saw no change. And most of these flickers on the dial were within the margin of error. Ironically, one of the few examples of a state of the union making a big difference was last year: Mr Bush’s rating jumped by six points. But this preceded the most disastrous year in his presidency.

Next, from a tactical viewpoint, Mr Bush’s biggest challenge was arguably to avoid making big new commitments rather than to add yet more of them to an overextended administration. He passed this test with flying colours (and managed to look confident and jaunty even when saying not very much).

Another reason not to change course was that Mr Bush’s presidency is on an uptick at the moment, albeit a small one. The biggest danger for such a polarising president was that his base would desert him. His lacklustre response to Hurricane Katrina, his overspending and his decision to nominate Harriet Miers, his personal lawyer, to the Supreme Court made this a possibility last year—especially when you add in the Republican corruption scandals.


War and the Defeaticrats

From this perspective, the most important scene was not Mr Bush holding forth before the chamber; it was Justices Roberts and Alito taking their seats before the presidential dais. The conservative movement was created as much by fury at the liberal courts as anything else. The double confirmation of Mr Roberts (who is 51) and Mr Alito (55) will move the court to the right on everything from racial preferences to the role of religion; it will shape American law and culture for decades to come.

Meanwhile, the Bush battleplan for the 2006 mid-term elections has begun to emerge. He wants to solve the Republicans’ problems by focusing the troops on what they do best: laying siege to Democrats. Mr Bush’s speech followed Karl Rove’s address to the Republican National Committee on January 20th. The president’s main political adviser promised an assault on the Democrats’ weakest spot: the war on terrorism. America is at war, goes the argument, but the Democrats are obsessed with warrantless wiretaps. America faces a monstrous enemy, but Democrats are obsessed by blaming America. This doesn’t mean that the Democrats are unpatriotic, observed a smiling Mr Rove. They are just wrong. It is a safe bet that we will hear a lot more about the “Defeaticrats” than health savings accounts in the next ten months.

这几天都在看源码,头比较大

2006年02月01日

1。OEM集成安装方式
CMDLines.txt是默认的oem集成安装默认文件。CMDLines.txt文件里的程序在系统完成复制和注册组件的时候

运行安装。也就是在系统安装剩余12分钟时进行。

其目录规则如下:

$oem$\ $oem$\CMDLines.txt $oem$\InstDX9.bat $oem$\INSTHFS.bat $oem$\INSTIE6.bat

$oem$\$$\

$oem$\$1\

$oem$\$1\install $oem$\$1\install\Hotfixes\ $oem$\$1\install\Hotfixes\KB822831.exe 22$oem$\$1\install\Hotfixes\KB823559.exe $oem$\$1\install\Hotfixes\KB824105.exe $oem$\$1\install\Hotfixes\KB824146.exe $oem$\$1\install\Hotfixes\q814078.EXE $oem$\$1\install\Hotfixes\Q823718.exe $oem$\$1\install\UPDATES\

$oem$\$1\install\UPDATES\directx\ $oem$\$1\install\UPDATES\IE6SP1\ $OEM$应与I386在同一目录下。InstDX8.bat、INSTHFS.bat、instie6.bat放在$oem$目录下面和CMDLines.txt、

$$、$1并列。

$OEM$\$1       \$1 子文件夹映射到 %systemdrive%,一般是c:\

$OEM$\$$     $$子目录等同于%systemroot%或者%windir%指定的路径(c:\windows)

该是介绍CMDLines.txt文件的时候了。这个文件需要放在$oem$目录下。用记事本新建立一个文本文件

CMDLines.txt,然后编写 [Commands]
"cmd /c start /min cmd /c .\INSTDX9.bat"
"cmd /c start /min cmd /c .\INSTIE6.bat" "cmd /c start /min cmd /c .\INSTHFS.bat" CMDLines.txt文件的格式是"cmd /c start /min cmd /c .\xxx.bat" ,这个里面的xxx.bat里的文件名字最好

不要超过7位,最好符合8.3格式。

一般OEM版光盘的CMDLines.txt格式如下:

[Commands]
".\$1\update\Q327979_WXP_SP2_x86_CHS.exe /q /n /z"
".\$1\update\Q810583_WXP_SP2_x86_CHS.exe /q /n /z"
".\$1\update\Q329623_WXP_SP2_x86_CHS.exe /q /n /z"

下面介绍BAT文件内容 InstDX9.bat   ECHO. ECHO Installing DirectX 9.0B…… ECHO Please wait… start /wait %systemdrive%\install\UPDATES\directx\dxsetup.exe /opk
ECHO. EXIT

INSTHFS.bat cls @echo off ECHO. ECHO 安装SP4后的系统安全补丁,请等待。。。。 ECHO Installing KB822831… start /wait %systemdrive%\install\Hotfixes\KB822831.exe /Q /M /Z ECHO. ECHO Installing KB824105… start /wait %systemdrive%\install\Hotfixes\KB824105.exe /Q /M /Z ECHO. ECHO Installing KB823559… start /wait %systemdrive%\install\Hotfixes\KB823559.exe /Q /M /Z ECHO. ECHO Installing KB824146… start /wait %systemdrive%\install\Hotfixes\KB824146.exe /Q /M /Z ECHO. ECHO Installing Q814078… start /wait %systemdrive%\install\Hotfixes\q814078.exe /Q:A /R:N ECHO. ECHO Installing Q823718.EXE… start /wait %systemdrive%\install\Hotfixes\Q823718.EXE /Q /C:"dahotfix /Q /N /Z" ECHO. EXIT

instie6.bat ECHO Installing IE6.0SP1… start /wait %systemdrive%\install\UPDATES\IE6SP1\IE6SETUP.EXE /Q:A /R:N exit 上面的方法,在安装过程中会先把$1,$$中的文件拷贝到系统相应目录中,如你不想在安装过程中把文件拷贝

到系统目录,可参照下面的方法:

把上面的\install\Hotfixes,\install\UPDATES\IE6SP1,\install\UPDATES\directx直接建立在$oem$目录下

即:

$oem$\ $oem$\CMDLines.txt $oem$\install\Hotfixes

$oem$\install\UPDATES\IE6SP1

$oem$\install\UPDATES\directx

修改CMDLines.txt内容:

[Commands]

".\install\UPDATES\IE6SP1\IE6SETUP.EXE /Q:A /R:N "

".\install\UPDATES\directx\dxsetup.exe /opk"

".\install\Hotfixes\KB822831.exe /Q /M /Z"

".\install\Hotfixes\KB824105.exe /Q /M /Z"

".\install\Hotfixes\KB823559.exe /Q /M /Z"

".\install\Hotfixes\KB824146.exe /Q /M /Z"

".\install\Hotfixes\Q823718.EXE /Q /C:’dahotfix /Q /N /Z’"

2.[GuiRunOnce]安装

winnt.sif文件里的[GuiRunOnce]段是在系统完成安装正式进入桌面前安装。

首先我们要了解winnt.sif--光盘启动后默认的应答文件

制作winnt.sif文件—–Windows安装光盘中附有无人值守安装配置工具,具体位置位于\SUPPORT\TOOLS目录

下的DEPLOY.CAB文件中,用Winrar解开它释放到任何一个临时目录,再执行SetupMGR.exe就可以定制应答文

件了.手工添加 [GuiRunOnce] %systemdrive%\install\applications.cmd

段,[GuiRunOnce]段是在win启动后快进入桌面的时候运行的。

这里,我们要建立applications.cmd文件,目录规则:

$oem$\$1\install\applications.cmd

$oem$\$1\install\Applications\ $oem$\$1\install\Applications\winrar.exe $oem$\$1\install\Applications\MPSETUP.EXE

applications.cmd Echo 增加 DOS 控制台方式下Tab键补齐程序及目录名功能….

REGEDIT /S  %systemdrive%\install\Applications\cmdtab.reg

Echo 增加从任意目录名(驱动器名)访问DOS命令行功能….

REGEDIT /S  %systemdrive%\install\Applications\dosshell.reg

Echo 禁用自动磁盘共享功能….

REGEDIT /S  %systemdrive%\install\Applications\dis_auto_share.reg

Echo 禁用匿名枚举本机账号功能….

REGEDIT /S  %systemdrive%\install\Applications\dis_IPC_acc.reg

ECHO. ECHO Installing WinRAR 3.15 ECHO Please wait… start /wait %systemdrive%\install\Applications\winrar.exe /s ECHO. ECHO Installing Windows Media Player 9 ECHO Please wait… start /wait %systemdrive%\install\Applications\MPSETUP.EXE /Q:A /R:N ECHO.

ECHO 删除安装过程中的临时文件… ECHO. RD /S /Q %systemdrive%\install ECHO. Exit ***************************************
请注意:
如果你想在安装系统的过程中从$OEM$/$1文件夹下安装额外的程序,你就应该把winnt.sif中的
[Unattended]
OemPreinstall=Yes
它设置为Yes,这样安装程序就会知道这次的安装会发布其他程序,而预先把相应的安装文件复制到系统盘中。
****************************************

无界面自动安装程序模式的扩展命令需要你阅读大量的帖子收集。

有个别是比较特别的:
Q832483.EXE /C:"dahotfix.exe /q /n" /q:a

wmp9.exe /Q:A /R:N /C:"setup_wm.exe /Q:A /R:N /NoMigrate /DisallowSystemRestore" (关闭系统还原,
不会报错!)

在这里,可将我们收集整理的需要集成安装的文件整理归类,需要安装后重新启动或有些必须重新启动才能继

续安装的程序归一类,不需要重新启动就可以安装的另归一类,分别采用上面的安装方式来安装!

3.xpinstall安装(仅适合于WINDOWS XP)

这是一种老外发明的安装系统补丁的方式,它是在系统安装剩余9分钟时执行的,通过读取XPINSTALL.XML来调

用的。它在执行时会弹出一个提示框,正在执行的安装会以高亮显示。目录规则:

$oem$\

$oem$\$1

$oem$\$1\INSTALL

$oem$\$1\INSTALL\XPINSTALL.EXE

$oem$\$1\INSTALL\XPINSTALL.XML

$oem$\$1\INSTALL\IMAGES

$oem$\$1\INSTALL\DirectX\

$oem$\$1\INSTALL\HOTFIXES\

其中XPINSTALL.EXE和XPINSTALL.XML是它的执行文件和脚本文件,IMAGES目录中放的是它的外观图片,HOTFIXES

目录放的是系统补丁,接下来要说明的是XPINSTALL.XML了!

XPINSTALL.XML

Windows Update Standalone                                 ;以上是关于外观位置及图片的设置
<title>Windows XP 安装设置中心   ;外观的标题
Complete Copying #1# (#2#/#3# – #4#) Moving #1# (#2#/#3# – #4#) Deleting #1# (#3#) ‘#SYSTEMDRIVE#\INSTALL\DX90B\dxsetup.exe’ arguments=’/opk’ /> 
‘#SYSTEMDRIVE#\INSTALL\WMP9.exe’ arguments=’/Q:A /R:N’ /> ‘#SYSTEMDRIVE#\INSTALL\Hotfixes\hu1002.exe’ arguments=’/Q:A /R:N’ /> ‘#SYSTEMDRIVE#\INSTALL\Hotfixes\KB820291.exe’ arguments=’/Q /O /N /Z’ /> ‘regedit’ arguments=’/s "#SYSTEMDRIVE#\INSTALL\RegTweaks.reg"’ /> 说明:其中command=’execute’是指命令的形式,’Applying tweaks…’是显示的信息,

program=’#SYSTEMDRIVE#\INSTALL\Hotfixes\KB822603.exe’是路径,arguments=’/Q /O /N /Z’是安装的参数!

另外,想让它在剩余9分钟时运行,就必须在自动应答文件winnt.sif中加入以下字段:

[SetupParams]
UserExecute="%SystemDrive%\Install\XPinstall.exe"

以上方式也需要把文件拷贝到系统目录中去,如果想让它直接调用光盘上的文件,免去拷贝的麻烦,可以这样

来修改:

目录规则:

$oem$\

$oem$\CMDLines.txt

$oem$\INSTALL

$oem$\INSTALL\XPINSTALL.EXE

$oem$\INSTALL\XPINSTALL.XML

$oem$\INSTALL\IMAGES

$oem$\INSTALL\DirectX\

$oem$\INSTALL\HOTFIXES\

CMDLines.txt的内容如下:

[Commands]
".\INSTALL\XPinstall.exe"

同时需要把XPINSTALL.XML中的

program=’#SYSTEMDRIVE#\INSTALL\(文件路径)
改为:
program=’#XPINSTALL#\

如:
program=’#SYSTEMDRIVE#\INSTALL\DirectX\dxsetup.exe’应改为

program=’#XPINSTALL#\DirectX\dxsetup.exe’

再把应答文件winnt.sif中上面添加的字段去掉!

4.svcpack集成安装

这是微软官方介绍的一种比较接近于XP1和XP4集成补丁的方式!它将会在系统安装剩余13分钟执行!无界面的
静默安装方式!

*****************
注意:
如果您使用此过程集成更新,则系统会在“添加或删除程序”控制面板中为每个更新添加一个条目。但是,

没有“删除”按钮可供使用,原因是如果删除更新,则更新的文件没有以前的版本可供还原。
*****************

具体方法如下:

首先,你需要在I386文件夹下创建一个名为svcpack 的文件夹,然后把你下载回来的所有补丁程序复制到这

个文件夹中(如C:\XPCD\i386\svcpack\)。所有的补丁程序都需要重命名为8.3格式(长度不能超过8个字

母),举例来说,名为Q819696_WXP_SP2_x86_ENU.exe和WindowsXP-KB824146-x86-ENU.exe的补丁可以重命

名为Q819696.exe和Q824146.exe,同时该文件夹下也可以有其它的文件夹!(如C:\XPCD\i386\svcpack\

DirectX\)复制并粘贴以下的文字,把它保存在i386文件夹中,并命名为svcpack.inf:

Windows 2000系统:
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=0
BuildNumber=2195

[SetupData]
CatalogSubDir="I386\svcpack"

[SetupHotfixesToRun]
DirectX\dxsetup.exe /opk
Q323255.EXE /Q /U /N /Z
Q330994.EXE /Q:A /R:N
QCHAIN.EXE

Windows XP系统:
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=1
BuildNumber=2600

[SetupData]
CatalogSubDir="I386\svcpack"

[SetupHotfixesToRun]
DirectX\dxsetup.exe /opk
Q323255.EXE /Q /U /N /Z
Q330994.EXE /Q:A /R:N
QCHAIN.EXE

Windows Server 2003系统:
[Version] Signature="$Windows NT$"
MajorVersion=5
MinorVersion=2
BuildNumber=3790

[SetupData]
CatalogSubDir="I386\svcpack"

[SetupHotfixesToRun]
Q323255.EXE /Q /U /N /Z
Q330994.EXE /Q:A /R:N
QCHAIN.EXE

其具体形式为:

[SetupHotfixesToRun]
KB文章编号.exe /选项

别忘了把QCHAIN.exe 放在你的svcpack文件夹中。这个程序可以在有两个补丁程序同时修补同一个文件的时候

确保修改的系统文件能保持为最高版本号的版本。在svcpack.inf文件中关于补丁程序安装的最后一行添加执

行QCHAIN.exe的命令。

最后,打开I386文件夹下的DOSNET.inf 文件,然后添加如下命令:

[OptionalSrcDirs]
svcpack
(别告诉我你发现的是DOSNET.in_,你就不会改了)

以上介绍的与微软官方的有点出入,以下是微软网站的一段文章,供大家参考:
*****************************************************************************
概要
本文介绍管理员如何将使用 Update.exe 的 Windows 产品更新(例如,安全修补程序、关键更新或修复程序)
集成到 Windows 安装源文件中。如果管理员在从其创建的 Windows 分发文件夹中进行安装时必须应用一个或
多个产品更新,则此过程可能会有用。注意此过程不能用于不使用 Update.exe 作为安装程序的产品更新。例
如,用于 Microsoft Windows 2000 和Microsoft Windows XP 的某些 Microsoft Internet Explorer 更新使
用基于 INF 的安装,而不使用 Update.exe。因此,您无法使用此过程集成用于 Windows 2000 或 Windows XP
的这些 Internet Explorer 更新。
如果您使用此过程集成产品更新,系统不会正确创建 Filelist 注册表项。例如,如果您将 824146 安全修补
程序集成到 Microsoft Windows Server 2003 安装源文件中,则系统不会正确创建下面的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows Server 2003\SP1\KB824146\Filelist

如果您使用此过程集成更新,则系统会在“添加或删除程序”控制面板中为每个更新添加一个条目。但是,没
有“删除”按钮可供使用,原因是如果删除更新,则更新的文件没有以前的版本可供还原。
如果存在以下情况,管理员可能还必须向 WinPE 应用产品更新:
管理员使用 Windows Preinstallation Environment (WinPE) 运行 Windows 安装程序。
管理员使用网络共享位置上的已经集成了产品更新的操作系统。
有关如何执行此操作的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 828217 How to Apply the 824146 Security Patch to Your Windows Preinstallation Environment 本文中的说明也可用于基于远程安装服务 (RIS) RISETUP 的映像。RISETUP 映像的 I386 目录结构和网络分
发文件夹一样。对于 RIPREP 映像,将映像向下拉到客户端计算机,安装修复程序,然后通过 RIPREP 将映像
返回到服务器。
更多信息
要将使用 Update.exe 的产品更新集成到 Windows 安装源文件中,请按照下列步骤操作:
将某个驱动器映射为要在其中创建分发文件夹的网络共享位置,或登录到要在其中创建分发文件夹的计算机。
这些步骤假定您在驱动器 X 上创建分发文件夹。
创建分发文件夹。例如,要在驱动器 X 上创建名为 Winflat 的分发文件夹,请在命令提示符下键入下面的命
令:
mkdir X:\Winflat\

设置对于 Winflat 分发文件夹的权限,以便只有管理员具有完全控制权限,所有的其他用户只具有读和执行
权限。
将 Windows 产品 CD 插入到 CD-ROM 驱动器中,然后将 CD 上 I386 文件夹的内容复制到您在第 2 步中创建
的 Winflat 分发文件夹中。为此,请在命令提示符下键入下面的命令:
xcopy /E /I /V D:\i386 X:\Winflat\i386

编辑 X:\Winflat\i386\dosnet.inf,向 [OptionalSrcDirs] 部分添加“svcpack”。例如:
[OptionalSrcDirs]
uniproc
svcpack

注意 对于 Windows XP 或 Windows Server 2003 分发文件夹,您可能需要在 Dosnet.inf 文件中创建
[OptionalSrcDirs] 部分。Windows 2000 中包含的 Dosnet.inf 文件已经包含此部分。
创建一个 X:\Winflat\i386\svcpack 文件夹。为此,请在命令提示符下键入下面的命令:
mkdir X:\Winflat\i386\svcpack

将您要集成的更新程序包 (产品名称-KB文章编号-选项-语言.exe ) 复制到 X:\Winflat\i386\svcpack 文件
夹中。为此,使用 8.3 命名格式 (KB文章编号.exe),其中 文章编号 是与该更新关联的 Microsoft 知识库
文章编号。如果您要应用多个更新,则复制并重命名所有更新程序包。
将每个更新程序包解压缩到唯一的临时文件夹中。例如,要将某个更新程序包的文件解压缩到驱动器 Y 上名
为 ExtractedPackage 的文件夹中,请在命令提示符下键入下面的命令: C:\i386\svcpack\KB文章编号 /X:Y:\ExtractedPackage

对于每个更新,从 Y:\ExtractedPackage 中,复制目录文件 (KB文章编号.cat) 和更新的二进制文件(例如 .exe、.dll 或 .sys 文件)。为此,请按照下列步骤操作:
对于每个文件,将 KB文章编号.cat 从 Y:\ExtractedPackage 复制到 X:\Winflat\i386\svcpack 文件夹中。
.cat 文件应使用与更新程序包文件名相同的名称 (KB文章编号.cat),并且不要复制 Empty.cat。
对于每个更新,如果 Y:\ExtractedPackage 中存在相同的二进制文件,则只保留最高版本的文件。
对于每个更新,确定 Y:\ExtractedPackage 中包含的二进制文件在 X:\Winflat\I386 文件夹中是否存在相同
的文件。如果 I386 文件夹中存在该文件,则从 X:\Winflat\I386 中删除该文件。
注意 I386 文件夹中的文件扩展名的最后一个字符可能是下划线 (_)。例如,Rpcss.dll 在 I386 文件夹中命
名为 Rpcss.dl_。
对于每个更新,将更新的二进制文件从 Y:\ExtractedPackage 复制到 X:\Winflat\I386 中。
对于每个更新,查看 Y:\ExtractedPackage 中是否有与 X:\Winflat\I386 的子文件夹具有相同名称的任何子
文件夹。如果文件夹包含任何此类子文件夹,则将更新的二进制文件从 Y:\ExtractedPackage 子文件夹复制到
X:\Winflat\I386 的相应子文件夹中。例如,如果 Y:\ExtractedPackage 包含名为 Uniproc 的文件夹,则将
Y:\ExtractedPackage\Uniproc 中的文件复制到 X:\Winflat\I386\Uniproc 中。
注意
因为 Microsoft 对最新和次新的 Service Pack(N 和 N-1)提供支持,Microsoft 将某些更新打包为双模式
更新,您可以将双模式更新应用于具有不同 Service Pack 级别的计算机。例如,Windows XP 更新可能既有 SP1 子目录,也有 SP2 子目录,在 SP1 文件夹中具有用于 Windows XP 原始版本的更新文件,在 SP2 文件
夹中具有用于 Windows XP SP1 的更新文件。在本示例中,如果安装源程序是 Windows XP 原始版本(2600 版
),则必须使用 SP1 目录中的文件。如果安装源文件是 Windows XP SP1,则必须使用 SP2 目录中的文件。 有关 Windows XP 双模式更新程序包的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的
文章: 328848 Windows XP 双模式热修复程序包说明 Microsoft 也可能在发布 Service Pack 1 之后将 Windows Server 2003 更新打包为双模式更新。
Windows Server 2003 更新程序包在 nnnQFE 和 nnnGDR 文件夹中也包含两组用于最新和次新的 Servcie Pack
(N 和 N-1)的更新的二进制文件,其中 nnn 是最新和次新的 Service Pack(N 和 N-1)的原始发布版本
“SP1”、“SP2”等等。在这种情况下,您必须使用来自相应 nnnQFE 文件夹中的文件。 有关 Windows Server 2003 更新程序包内容的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 824994 Description of the Contents of a Windows Server 2003 Product Update Package 您不必复制 Common 或 Update 文件夹中的文件,例如 Update.exe、Update*.inf、SPmsg.dll、SPcustom.dll
、SPuninst.exe、Update.ver 或符号(.dbg 文件)。
对于您在第 9 步复制的每个文件(除了 KB文章编号.cat),请查看 X:\Winflat\I386\Dosnet.inf 文件以确
定文件名是否列在 [Files] 部分中。列在 [Files] 部分的所有文件的前面都有“d1,”。例如:

d1,文件名

如果没有列出您在第 9 步复制的任意文件的文件名,则使用下面的语法添加一个条目。 例如,如果修复程序
包含 Win32k.sys,因为 Win32k.sys 没有列在 Dosnet.inf 中,则将 d1,win32k.sys 添加到 X:\Winflat\I386\Dosnet.inf 的 [Files] 部分中。添加之后能够确保在 Windows 安装过程中复制更新版本
的 Win32k.sys。
删除 X:\Winflat\I386\Svcpack.in_ 文件。
在 X:\Winflat\I386 文件夹中创建一个 Svcpack.inf 文件。为此,根据您是要部署单个更新还是要部署多个
更新,使用相应的以下内容。(用您的更新 .cat 文件的知识库文章编号替换文章编号):

Windows 2000
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=0
BuildNumber=2195
[SetupData]
CatalogSubDir="\i386\svcpack"
[ProductCatalogsToInstall]
KB文章编号.cat
[SetupHotfixesToRun]
KB文章编号.exe /选项
Windows XP
[Version]
Signature="$Windows NT$"
MajorVersion=5
MinorVersion=1
BuildNumber=2600
[SetupData]
CatalogSubDir="\i386\svcpack"
[ProductCatalogsToInstall]
KB文章编号.cat
[SetupHotfixesToRun]
KB文章编号.exe /选项
Windows Server 2003
[Version] Signature="$Windows NT$"
MajorVersion=5
MinorVersion=2
BuildNumber=3790
[SetupData]
CatalogSubDir="\i386\svcpack"
[ProductCatalogsToInstall]
KB文章编号.cat
[SetupHotfixesToRun]
KB文章编号.exe /选项

注意
安装更新的建议选项是 /Q、/N 和 /Z。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中
相应的文章: 262841 Hotfix.exe Program Description and Command-Line Switches 824687 Command-Line Switches for Microsoft Product Updates, Tools, and Add-ins 如果要应用多个更新,请在 [ProductCatalogsToInstall] 和 [SetupHotfixesToRun] 部分下为每个更新添加
一个条目。下面的示例是安装多个更新的安装配置文件中这两个部分的示例:
[ProductCatalogsToInstall]
KB123456.cat
KB123478.cat
KB123490.cat
[SetupHotfixesToRun]
KB123456.exe /选项
KB123478.exe /选项
KB123490.exe /选项

如果要安装一个 Service Pack,则不必包含关于该 Service Pack 的详细信息,因为另外的一个过程会处理
Service Pack 安装。
************************************************************************************

微软介绍的比较麻烦,具体哪种好,自己选吧!

一些软件不能通过加参数来实现自动安装,你可以考虑用AUTOIT这个小软件。它通过编辑脚本文件来控制键盘
或鼠标的操作。具体方法参照该软件的帮助文件!!

GANDALF,CLIMBING,HNLYZHD隆重推出

  Avlgomgr 是 Avlgo 的 Windows 配置工具,使用它,你可以在
Windows NT/2000/XP/Vista 平台上使用磁盘镜像文件启动你的维护
工具盘更便捷。

  它是基于 Grub 0.97 构建的磁盘虚拟启动工具,并拥有良好的
Windows GUI 为使用它而提供了简便的操作。

  你只需要指定你想要使用的磁盘镜像文件(支持 zip 的标准压缩/
gz 压缩方式),然后点击管理器程序右下角的 “装配” 按钮即可完成必
要的操作;

  剩下的,就是你有时间重启计算机后,在 Windows 的引导菜单
界面上选择新增的那个条目即可。

  并且,这个版本的 Avlgo 已经内建支持 ISO 光盘镜像文件。

  为什么不试试呢? 

    >> 请从这里获取 <<


:版权
WBAT- Copyright (c)1999-2003, Horst Schaeffer- horst.schaeffer@gmx.net^
:

:Start
#                       WBAT 对话盒工具                            ^

WBAT 是一个在DOS中模拟 Windows 界面的对话框的一个批处理工具
。 当然 WBAT 也运行在纯 DOS 模式下工作。


功能:

+ 用“按钮(buttons),输入栏(input fields),菜单(menus),检查框(checkboxes),单选框(radio buttons)”来布局对话框--所有的元件可能是自由地安排
+ “Quick Box”由于指令行的规格
+ “List box”用于选择在批处理中产生的选项
+ “Text”文本输出;“fill”填充屏幕区域,,清屏(clear),颜色(color)
+  规定“字型(font)”和自定义颜色“调色板(palettes)”
+ “INI 文件(s)”用于默认值和偏爱设置
:

: 主菜单 " WBAT- Dialog Boxes for DOS " [x]

[WBAT & Tour ] 关于所有的 WBAT 功能的资讯
————————————————————–
[Setup       ] 为你自己的 WBAT 应用程序做好准备
————————————————————–
[Layouts     ] 布局设计对话框,菜单,本文
————————————————————–
[Commands    ] 指令明细对于你的整批文件
————————————————————–
[C & ontrol  ] 批处理控制: 出错码(errorlevel) 和变量(variables)
————————————————————–
[处理        ] 使用者的鼠标和键盘
————————————————-[ 退出(exit) ]
:

:tour-menu " WBAT 浏览 "[x]

[ Quick box&     ]
[ Box layout&    ]
[ Buttons, Menu& ]
[ Input fields&  ]
[ Checkboxes&    ]
[ Radio buttons& ]
[ List box&      ]
——————
[ Text display&  ]
[ Fill, CLS&     ]
[ Cursor&        ]
[ Screen save&   ]
[ Font, &Palette& ]
[ ANSI?&         ]
[ STDOUT&        ]
——————
[--- & END ---   ]
::

:tour-info
“WBAT Tour”将告知你所有的 WBAT 功能而不是很详细的研究。




在你开始前请注意下面的问题:

* 按“ESC”键或单击右上角的“[x]”按钮(当可用时)将关闭当前对话框;

* 在当前对话框范围外单击鼠标右键也将关闭当前对话框(除非这一功能没有激活);

* 要w移动一个对话框,可在对话框的上部按住鼠标键拖曳它。


:Quick-box
#                       Quick box                                       ^

让我们从一个非常简单的命令开始学习:

        wbat box OK

这是一个暂停的复位按钮, 提示用户继续。

在默认状况下,所有的对话框都放置在屏幕中央。
::

:Quick-pos
你也许希望可在屏幕的任何地方放置你的对话框。
对话框左上角的行、列坐标可以被定义:

        wbat box 20,60 continue

如果对话框超出屏幕边缘,没关系,WBAT 会自动改正位置。

如果对话框碰巧遮住你要阅读的内容,你可用拖曳功能移开对话框。
::

:Quick-choice
#                       Quick choice                                    ^

现在指定超过一个选项,而且有单一的选择:

        wbat box 21,40 continue,back,tour menu

选项之间必须用“,”分开。在选项里容许用空格。

你可以使用热键进行选择 (默认是第一个字符,在这个DEMO里用红色标记). 关于热键的更多信息请参阅“Layouts”。

在批处理文件中,处理用户的输入的方式与用“CHOICE”的一样,通过出错码(errorlevel)(1 对应于第一个选项,2 对应于第二个选项经,等等)

例:
        if errorlevel 3 goto TOUR-MENU
        if errorlevel 2 goto T-quick
        rem "continue" here

! 记住:在用 GOTO 测试出错码时必须降序排列errorlevels。
::

:Quick-prompt
#                    提示文字和颜色                              ^

一个可选的提示文字可以包含在双引号里,并放置于按钮选项的前面。

例子:  wbat box 19,55 "Continue Tour?" ok,back

你甚至可以使用多行本文:只须在提示文本中插入一个脱字符号 (^) 作为分行标记。


提示框的颜色(box color) 可在圆刮号中被指定 (默认值颜色在 WBAT.INI 被定义)。
格式是:(提示文本颜色 on 提示框背景颜色)

例子:  wbat box 19,55 (blue on light brown) "Continue Tour?" ok,back


关于彩色的语句和更多的对话框选项(选项的边框形式(item pre-set)及时间超出(time-out)),请参见“main menu”中的“Commands”。
::

:box-layout
#                       对话框布局                                      ^

如果你需要更多的功能,你就需要布局(layout)以便你能自由地安排本文和控件的位置:

        * 按钮(buttons)或菜单项目(menu items)
        * 输入区域(input fields)
        * 检查框(checkboxes)
        * 单选按钮(radio buttons)

在布局中,所有的控件被[]括起来。
见下一页的例子。

一般的命令格式是:  WBAT box @layout.txt:label

所有对话框的命令选项是:
方格位置(box position),颜色(color),初始化选择条位置(initial bar position),超时(time-out)。 见“Commands”(主菜单)。
::

:box-example
#                       对话框布局例子                              ^

这里举一个布局的例子。

注意:

对话框总是出现;
那意谓: 当对话框关闭时,背景已经被保存下来。

然而, 一个特别的 " fix " 选项可用于关闭对话框后返回屏幕。
::

:box-exm " 例子 "[x]

请输入你的名字和城市(Please enter your name and city ^

名字: [$名字,40              ]

城市: [$城市                 ]

[.] 男 [.]女

[!] 超过 21

         [    OK    ] [ cancel ]
::

:box-lref
#                       布局参考                                ^

在一个文本文件(text file)里,你能有多个布局。每个布局单元都有标签(label)识别, 像在批处理文件中一样。

一个布局单元的结束是在一行的开始用冒号(:),, 通常是下一个标签。

在你的 WBAT 命令中,你用文件名和标签来布局:

     * 文件名前面用“@”标记    e.g.  @dialog.txt
     * 标签前用“:”标示        e.g.  :START

例子:     wbat BOX @dialog.txt:start

然而,在大多数情况下,你可以省略文件名,因为WBAT提供了一个简易的方法来使用默认的文件。
另一个方法是在批处理文件中有布局,并且简单地用 “@%%0:label

详情请参阅“Commands/Layout Reference”
::


:box-other
#                       对话框布局                                      ^


其他布局功能:

  *     “变量(Variables)”可用于布局, 像在批处理文件中

  *     可以定义对话框的标题 (用不同的颜色显示)

  *     右上角的 [x] 是可选的,用于取消或退出

  *     不同颜色的“分割线”(Divider lines)


详见“Layouts”部分
控件在下面的章节中也有描述。
:

:bottons
#                   对话框布局中的按钮(bottons)                               ^

[]号中带有选项文字的按钮可放置于对话框中的任何位置。

例子:        [ ok ] [ cancel ]

用鼠标单击按钮或在高亮的按钮上按下“Enter”键,将关闭对话框,返回一个按钮的出错码。可选的,通过变量来命名。

选项文本不能以 “$”或“!”开始,
因为这些符号被保留用于识别其他的控件。

特别的:“?”用于标识“ESC”按钮,与键盘上的“ESC”键有一样的功能,而问号不会显示。

例子:        [ ok ][? cancel ]

在这情况下,“cancel”按钮返回的出错码不是“2”,而是100,就和其他的ESCAPE动作一样。
errorlevel 2, 但是 100,关于任何其他的逃亡行动。
详情请参阅“Control / ESC Handling”。
::

:buttons – menu [x]
[menu       ]
[ errorlevel]
[ variables ]
:

:buttons-menu
#                       Menu box                                        ^

“菜单”只是垂直排列的按钮 ( 在一列或多列)。然而, 在一个对话框中按钮通常用不同的颜色显示,灰色的是这个演示的按钮.(按钮颜色在 WBAT.INI 被定义)

如果你需要一个没有可见按钮(意为没有按钮背景,移到该位置时才亮显)的一个菜单 ( 象下面的例子), 就要使用 “menu” 指令代替 “box”。 处理方法是相同的。

例:       WBAT menu @layout.txt:label

你可以用详细的菜单选项来作一个大的对话框,或者用简单的关键字来做一个简单的对话框。

例子:(对于在这页上的画面)
~
        :button-menu [x]
        [ menu      ]
        [ errorlevel]
        [ variables ]
        :~
你可以插入空行,或添加文字。
另外,象标题、[x] 框, 分割线
请参见主菜单中的“Layouts” 。
:

:buttons-errorlevel
#               根据 errorlevel 选择 按钮/项目                      ^

在你的批处理文件中,你能通过返回的 errorlevel 来处理用户的选择,就如使用“Choice” 命令一样(记住用降序排列检查 errorlevels!)

例子:
        wbat menu :button-menu
        if errorlevel 100 goto Main           (捕捉 ESC/[x])
        if errorlevel 3 goto B-variables
        if errorlevel 2 goto B-errorlevel
        rem here is errorlevel 1
        :B-menu

注意:每个 errorlevel 值都有唯一的按钮对应,以防在你的布局里有
其他的控件。

关于详细的信息,包括 ESC 处理,请参见“Control”部分。
::

:buttons-variables
#                       处理用户输入                             ^

被选的按钮也能被以“名字”的方式返回值, 并分配给变量“WBAT”,默认值被赋给在菜单选项中选的(第一个)字。

简单的 “GOTO%%WBAT%%” 可以跳转到用选项命名的标签行。

注意: WBAT 只产生环境变量…

  这时用命令      call W.bat ……
  来替代          WBAT……

这种特殊的结构在Windows NT/2000下运行的很好,在Windows版本下运行很安全(只要DOS模式支持)

关于变量的更详细的信息请参见“Control”部分。
::

:input
#                  对话框的输入栏                            ^

输入栏用 “$”标记,并在$后面跟一个变量名,并将返回输入字串的字符串。

例子:       [$ city         ]

输入字符串的长度由[]括号所包含的的空间决定。
不同的长度 (更长或更短) 可以被指定,也可定义附加的选择项:

        U  强迫大写
        P  密码输入模式
        !  必须输入 (除非方格被 ESC 关闭)

例子:       [$ name,40,U!   ]

如果输入长度超过可见栏位大小,如果有需要的话字符串将会被替换。

注意:只做一个(没有按钮的)输入栏也是可以的。在这种情况下,按回车键将关闭对话框。
::

:input-var
#                       输入变量                                  ^


为了处理输入,你必须告诉 WBAT 返回的变量, 使用下面的语句:
               CALL W.BAT box ….

详情请见 Control 部分。

在对话框被显示之前,你可分配一个词首字母/默认值字符串给变量。如果你想要一个空的
输入栏,请确认清除变量 。

注意: WBAT 将会移除输入字符串后面冗余的空间。
::

:checkbox
#                  布局里的检查框                             ^

检查框用于触发选项的 ON/OFF 。要在对话框里创建一个检查框,在方括号里放置一个感叹号。

例子:       ~[!] include subdirectories~

在这个例子里,只有检查框本身能被触发。要包括触发选项的关联文本,请将它包括进[]号里面。

例子:       ~[!  include subdirectories]~


注意:在键盘上用空格键触发检查框。

检查框被触发为“ON”的标记可在WBAT.INI定义(默认符号:“x”)。
:

:checkbox-example "Checkbox" [x]

[!] include subdirectories
[!] all uper case

[    ok    ][  cancel  ]
:

:checkbox-var
#                       检查框变量                               ^


在一个对话框里可以有 9 个检查框。 每个检查框的返回值均为 0 (off) 或 1 (on) , 并将第一个分配给变量 WCB1,第二个分配个 WCB2,如此类推。

这是一个处理返回值变量的例子:

        set option=
        if %%WCB1%%==1 set option=/S


注意:在对话框被显示之前,初始/默认状态被指定给变量。一个空的变量或任何无效的变量都将赋于 0 (OFF)
::

:radio
#                  对话框布局中的单选框                          ^

在提供的几个选择框中,但只有一个可以被选择,其他的自动关闭。

单选框用[]括号里加一个句点“[.]”表示。

例子:       [.]LFN    [.]short DOS name

对于单选框的提示文本,也可以包括到[]括号里去。
例子:       [.  left aligned ]
            [.  right aligned]
            [.  centred      ]

注意: 在键盘上用空格键可将高亮的选项激活为“ON”。

“ON”的符号可在 WBAT.INI 中定义。(默认值: "*").
:

:radio-example "Radio Buttons" [x]

[.  left aligned ]
[.  right aligned]
[.  centred      ]

[      ok        ]
::

:radio-var
#                       单选框变量                           ^

你可以定义一套多达 9 个单选按钮 (最小量是 2) 的单选框。当一个单选按钮被选择时,将返回单选按钮的号码 (1…),并赋于变量“WRB” 。

这是处理单选框返回变量的例子:

        set align=left
        if %%WRB%%==2 set align=right
        if %%WRB%%==3 set align=center


注意:在对话框被显示之前,初始/默认值能被指定给变量。一个空的或任何无效的变量都将被赋于 1 (first)

::

:listbox
#                       从列表中选择                             ^

一个列表看起来像一个菜单, 但他们有一些重要的不同:

   * 在布局中不须方括号[]。 (整行被使用)

   * 用“卷动”功能可“达到 32Kb”被显示。

这意味着你可以很容易的在批处理过程中提出一个源文件,举例来说:

       WBAT list @file.ext[:label]

你可以象任何对话框命令一样指定标签,但是如果你省略那标签,整个文件将被提出。

符号“@” (表示文件名字) 在LIST命令中并不是强制的。。
::

:list-example
#                       列表例子                                    ^


这一个例子列出当前目录的文件。拾取一个文件……


卷动: 使用光标键(上/下)或将鼠标指针移到顶端或底端的滚动钮上并单击[或按住]鼠标左键。
单击箭头用翻页。

下面是查看列表的命令:

    DIR *.* /b/a-d/one > %temp%\temp.txt
    call W.BAT list 3,60 %temp%\temp.txt

    wbat box 8,53 "Your selection was:^** %%wbat%% **" again,continue
    del %%temp%%\temp.txt

::

:list-keys
#                   用键盘选择行                             ^


你能使用键盘选择一个行就像在 Windows 浏览器中一样:

如果你键入一个或多个的字符,标记就会跳到下一个(你键入)的这些字符或字符串处开始。 如果在下面的列表中没有找到,将从顶端重新开始搜寻。

你不能在键击之间暂停超过一秒钟的时间(否则,搜索字符串会复位)。空字符键也会重新复位。

最大的暂停时间可以在 INI 文件中[general]部分的“ListHotTicks”字段中通过调整 ticks 的值来改变(18 ticks =1 秒),举例来说:

        ListHotTicks=36             ;2 秒
:

:list-browse
#                       查看本文文件                                 ^

你也可以使用 WBAT LIST 来查看小的文本文档。

注意:最大的文件大小是 32 Kb ,而且行宽是 76bytes (超长的部分将被删除).

下面是显示 WBAT.INI 文档的例子。

命令: wbat list WBAT.INI
:


:本文
#                       本文显示装置

在屏幕上显示文本你可以用“TYPE”或“ECHO”,但是“WBAT text”指令提供一些额外的功能:

    * 可在屏幕上的任何位置输出
    * 本文通过标签在布局文件中读出(就象对话框一样)
    * 本文中的变量 %%…%%钭被填写
    * 颜色,题头,属性

默认情况下,本文将以当前的颜色显示在屏幕上。这意味着在本文输出之前你将通常要用你想要的颜色清除屏幕。
(详见 WBAT CLS)。

WBAT 从给定的布局文件中通过标签来读出,如果文件中没有标签,将读出整篇文本文档。但是,只有一个屏幕的文本被显示,多余的将不能显示,没有卷动条。

例子:        WBAT list 2,4 :info
             WBAT text @ file.txt
::

:text-area
#                       本文区域                                       ^

本文在一个矩形框中被显示,这个矩形框的大小由最长的行和行的数目决定。
当你用不同的背景色显示文本时,你只需注意这一点,象这个例子。

要调整矩形框的文本,可加入空行和左边/右边的空格。

跟通常一样,左上角的位置被定义为矩形框的位置。默认值是 1,1。如果本文框超过右下角的边缘,位置将会被调整以适合大小。超过屏幕大小的本文将不能显示。

刮弧里的可选的颜色
:

:text-example

  要实现这样的一个本文显示,用如下的命令格式:

  wbat text 8,16 (blue on light brown) @:text2example          ^

::

:text-attrib
#                  本文显示的属性                           ^

你能在布局中使用两种特殊的颜色来标记行或段落。这些颜色在 WBAT.INI 中定义:

               TextHi      屏幕本文高亮

要使文本或段落高亮,可在文本或段落的开始及结束处插入“~”符号。 (“~”可以在 INI 文件的[general]段定义HiSymbol来改变。)


#              TextTitle  屏幕本文标题                            ^

放在最左一列的“#”符号标记了标题行(任何地方,不只在页的顶端)。标题颜色的宽度是整个文本的宽度。 由最长的行决定。要强制一个更长的标题,可填入空格或在结束处用“^”标记。
::

:text-quick
#                       Quick text                                      ^


关于对话框命令,有一种 "快的模式(Quick text)" 显示一个简短的信息,就象定义命令参数一样。

这就非常方便用指定的颜色来显示信息或标题,象下面的例子:


       wbat text 11,30 (+white on red) " Pls. ignore this message! "
::

:fill
#            用图案,字符串,颜色,CLS填充一个区域            ^

你可以用任何字符或字符串填充一个矩形框,或者只是改变颜色。一个特殊的选项容许一行一行的交替给定字串。看下面的例子。

用“FILL”命令你也可以清除屏幕的指令:

        wbat fill " "

CLS 指令起到一样效果:

        wbat CLS

可选择的颜色 (默认由WBAT.INI定义):

        wbat CLS (white on blue)
::

:fill-syntax
#                       填充语法                                     ^

语法:     wbat FILL position (dimensions) (colors) "string" +s

为所有参数的默认解释。

   position:左上角的行坐标和列坐标,默认是 1,1

   dimensions:填充区域的宽和高(总是在刮弧中)。默认值: 屏幕边缘。

   colors:颜色,默认值:屏幕颜色 (WBAT.INI)

   string:将会在每行中被重复; " " 清除;
           字串省略: 只有颜色被改变(文本保留)

   +s:替换每一个随后的行

若填充区域超过屏幕边缘,将会被剪切。

例(演示版的蓝色区域)

    wbat fill 13,32 (9,28) (+magenta on blue) "揽谫" +2
::

:cursor
#                       光标与卷动栏

如果你想准备让你的屏幕输出其他程序,你需要光标指令。
对于其他程序的输出。WBAT 不使用 DOS 光标(只有 CLS 指令使光标复位到初始位置)。

举例来说,如果你文本输出到屏幕上半部分,而后续的程序和DOS命令输出到屏幕的中部,你可以将光标设置到第13行:

           wbat cursor 13

你也可以从当前行或任何指定的行开始发送移行命令给屏幕,当光标到达底部时,屏幕将会卷动。

例子:    wbat cursor 25+5

这将移动光标到底行, 并卷动 5个行。
:

:screen
#                       屏幕保存/恢复                             ^

WBAT boxes (box/menu/list) 总是出现, 意味着当对话框被关闭后背景将得以恢复。
对于嵌套菜单和对话框的特殊影响,WBAT提供了一些额外的功能。

* “FIX”前缀可使对话框固定, 也就是被关闭后仍保留在屏幕上。这样你可以打开另一个对话框,而第一个对话框保持可见。注意:固定的对话框不能在屏幕上拖动。

  例子:     call w.bat FIX menu :start

* WBAT save/restore 当它用于其他输出(如更多的对话框,查看文档等)时,将保存屏幕。
  
  WBAT SAVE 拷贝屏幕映像到文件,并存放于%%TEMP%%目录里。
  WBAT RESTORE 恢复屏幕,并且删除临时文件。
  为了使用超过一个文件,需要指定ID号。

  例子:     wbat save 2
:

:palfont
#                 字型和调色板,Windows 字型                       ^

注意这个演示不使用由BIOS或者Windows提供的默认颜色。

WBAT 提供指令为全屏模式载入用户调色板和字体字形。

颜色也可在 Win95/98 窗口中工作,不能在Windows NT 或 2000下工作,但这些系统支持为DOS对话框设计的用户颜色。(详见NTcolors.bat调整)

对于GUI窗口,提供两种“new bitmap fonts”:

   SANS16.FON    9*16 象素字型 (窗囗宽度: 720个图素)
   SANS19.FON    10*19 象素字型 (窗囗宽度: 800个图素)

在GUI窗口中能被选择之前,这些字型可通过 Windows 控制板被安装。
::

:palette
#                       用户定制的颜色色调色板                            ^

WBAT PAL 装载由WBAT.INI指定的颜色设色板文件。

这个演示文档的调色板在文件 PAL.INI 中定义, 设计为亮的背景和暗的字符。修改颜色值请参照PAL.INI的注解。

如果没有找到调色板文件 (在 WBAT PAL 之上),WBAT 将使用一内建的默认调色板,是相同于原始的 PAL.INI。

注意:

在一个GUI窗口中颜色不会立即改变, 而是提供给后续的输出。 因此,要在PAL命令后清除屏幕。

调色板将保留直到程序恢复到video模式。

要移除订制的调色板,运行 DOS 指令: MODE CO80
::

:font
#                       完整的屏幕字型                                ^

wbat FONT 载入由WBAT.INI指定的字型文件。SANSERIF.FNT被提供。

注意,字型只在全屏模式中显示, 但在GUI窗口中激活也不会有害。

可选择地,你能将屏幕设定为 33行:

        wbat font 33          (重新设定: wbat font 25)

这个指令也会将GUI窗口换成 33个行,扩大窗口.(虽然字型本身被忽略)。请在 DOS 提示符下测试。

字形将保留直到程序恢复到video模式。

要移除订制的字型,请运行 DOS 指令: MODE CO80
::

:No_ansi
#                       ANSI控制台驱动器                             ^

你当前不在运行ANSI标准驱动器。

如果你不知道ANSI驱动器是什么,只须跳过下面部分。 WBAT 不需要ANSI驱动器。

信息:

ANSI CODES用于颜色和光标,控制屏幕输出。程序通常仍然使用与它一起提供的这些编码进行ANSI仿真。

标准的 Windows 配置不载入ANSI驱动器。
:

:ansi
#                       ANSI控制台驱动器                             ^

首先,所有的 WBAT 输出不受ANSI的影响。

然而,来自其他的程序 ( 透过标准输出) 的输出不将会在目前的屏幕上彩色显示,而是以先前已经由ANSI CODE程序通过的颜色显示。(初始:白色(前景)、黑色(背景))。

这意味着如果你想按指定的颜色输出其他的程序,你必须使用 ANSI CODES 额外的为 WBAT 提供颜色输出。

WBAT 提供了一个指令帮助你以防万一当前有一个未知的ANSI驱动器:

       wbat ANSI?    如果没有ANSI驱动器发现, 返回 errorlevel 1

可选择地,你可以加入一个ANSI CODE程序,将会只被送出, 如果存在一个激活的ANSI驱动器 (因此你不会在屏幕上产生任何乱码。
:

:stdout
#                       Wbat STDOUT                                     ^

既然有 Wbat TEXT 指令, 我们需要 STDOUT 做什么?
答案是:输出到 STDOUT 可重定向到一个文件。

AND 为什么不用TYPE?
有两件事TYPE不能实现:

     * 读来自一个文件里的有标签的小片断
     * 代替环境变量


指令:  wbat STDOUT @file.txt[:label]

Wbat STDOUT 只产生一个场景用于例如重定向到一个文件、一个集合、一个从文本片断或模板来的文件。

你必须找出你自己需要的功能来使用。
:


:setup-title
谀哪柯哪目谀履口柯哪目^
滥哪棵?  ?? ?  趁哪馁
滥哪倭哪馁 ? 滥哪倭
:

:setup-menu " WBAT 应用程序的安装 "[x]

[ Installation    ] 储存 WBAT 运行时的文件、路径
————————————————————–
[ INI file        ] WBAT.INI,override、文件/颜色明细
————————————————————–
[Environment      ] 提供环境变量空间
————————————————————–
[ Project editing ] 编辑器, 多重 DOS 对话框
—————————————————– [ 结束 ]
:

:install1
#                       WBAT 安装                               ^

为了运行这个演示文档,你或许已经将 WBAT 文件解压到一个初定的文件夹。

当你要使用 WBAT 来制作你自己的批处理时, DOS 必须能从你的目录结构定位程序文件。

这通过设定路径来实现(详见autoexec.bat),就象下面的语句:
           PATH C:\ WINDOWS;C:\ Windows\command;C:\ DOS\UTIL

当一个文件不在当前的目录中时,COMMAND.COM 试着定位指定文件夹的程序文件。

因为只有几个 WBAT 文件被共用,因此最好将这些文件拷贝到一个已经存在的公用文件夹里,这个文件夹是你包含在你已经指定的路径中的。当然你也可以创建新的文件夹,然后将其加入到你的PATH中。
:

:install2
#                     安装 WBAT 文件                             ^

注意: 最初的 WBAT 文件应该存放在一个分开的文件夹中,这样你才能在任何时候以最初的设定运行DEMO。

拷贝这些文件到“public”文件夹,并将这个路径设定到PATH中:

           WBAT.COM
           W.BAT
           WBAT.INI

第一、二是可执行文件。 INI 文件放在与 WBAT 要运行的程序文件相同的文件夹中。

默认情况下,文件 PAL.INI 和 SANSERIF.FNT 也被放置在这个文件夹。然而,如果你不喜欢在那里有太多文件,可以放在子文件夹或磁盘上的任何其他的地方。 在这种情况下,你必须修改你的 WBAT.INI 。 详情见下面一章。

要在GUI 窗口中使用“bitmap fonts” SANS16.FON 和 SANS19.FON,必须在 Windows 控制面板中安装它们。
:

:inifile
#                       INI 文件 WBAT.INI                               ^

全局的 WBAT 设定从放在与WBAT.COM文件同一个文件夹的 WBAT.INI 中提取。

你也可以在其它目录里创建为指定项目而修改的 WBAT.INI。 WBAT 在检查它自己所在目录之前,总是在当前目录中寻找 WBAT.INI。

这个演示的配置项目在各自的章节有解释,也可参见WBAT.INI 的注解。

注意: 如果没有找到 INI 文件,WBAT 将使用内建的与初始的INI文件相同的默认值。
:

:ini- menu [x]
[ WBAT.INI ]
[ override ]
[ files    ]
[ colors   ]
:

:ini-override
#                 Override INI 文件设定                            ^

所有的INI文件里的设定都可通过变量临时改变。
变量名就是INI文件里的项目名,用“W”作为前缀。

例子:       SET W button=black on +cyan
            SET W rightESC=0
            SET W radiosymbol=254

要返回到 INI 文件设定,清除变量。

例子:        set W button=


:ini-files
#                 WBAT.ini 的文件规格                       ^

通常,你能按照DOS规范(8.3命名)在你的 WBAT.INI里指定一个文件。作为一个例外,“+”可作为一个前缀用于指向 WBAT 的目录 ( 也就是程序文件 WBAT. COM 所在目录)。

* 对于默认的源文件(布局) 文件名必须被指定,没有路径。 这样你能使用名字作为局部的默认文件,也用于WBAT目录里的全局的默认文件(只需要“+”指向).

  例子:      SourceFile= WBAT.TXT

* PAL.INI 和 SANSERIF.FNT必须用全路径指定,或者用“+”前缀。例:

     PalFile=C:\some\where\Pal.INI
     PalFile=+pal.INI                (在 WBAT 的目录中)
     PalFile=+data\Pal.INI           (在子目录中)
:

:ini-colors
#                       INI 文件里的颜色设定                              ^

参见 INI 文件的注解, 详细的描述请参见“layout”部分。
关于颜色解释,请参见 Commands/Colors.

一些特别的功能:

* 对于分割线和阴影的颜色被忽略。分割线的背景总是从激的对话框的颜色中提取。

* 对话框阴影可以通过设定“NONE”来关闭。

* 对于热键颜色 (在按钮中) 的背景是可选的。“NONE”将完全关闭热键功能。
:

:Environment
#                       环境空间                               ^

WBAT 使用环境变量报告输入的是字符串或有名字的按钮, 举例来说。

变量被储存在 COMMAND 环境空间中,要列出当前储存的所有变量,使用 DOS 命令 SET(不带参数)

既然环境空间被限制,你应该小心的处理以便有足够的空间运行你的 WBAT 批处理。 Windows 的DOS对话杠默认是384bytes。要改变其大小,请打开DOS对话框/内存的属性。

Win98 好像自动将环境空间增加到 400,这对于从一开始就提供足够的空间是一个好主意。

对于 DOS 版本为 6.x 以上的,详见文件 ESPACE.TXT 里的注释。

工具 ECHECK.bat 提供了一个是否达到最小可用空间的测试。参数可参见到这个文件里的描述。

记住清除那些不会再用于你的批处理的所有变量。
::

:project-editing
#                       项目编辑                                 ^


如果你使用一个 Windows 编辑器,扩展的 ASCII 字符( 图形符号
或特别的欧洲字符)只有在当你选择了终端字体时才会在DOX对话框中恰当的显示。你的编辑器也可提供“bitmap fonts”给WBAT(与终端字体一样,大小 12/14)

你能开启几个 DOS 对话框测试你的批处理文件,编辑布局文件,并且运行 WBAT 演示来获得信息,所有都在同一时间进行。

当一个批处理在另一个DOS窗口运行时,不要编辑这个批处理文件。
COMMAND.COM 保留了行的物理位置以便继续,当你编辑这个文件时,这些位置可能会改变。
:

:command-menu " Command in Batch Files " [x]

[ Command & Summary  ] 所有WBAT命令的列表
————————————————————-?
[ W.BAT construct    ] 生产变量,alt: STDOUT
————————————————————-?
[ Multiple command   ] 一行同时几个 WBAT 命令
————————————————————-?
[ Position           ] 输出位置,尺寸
————————————————————-?
[Color               ] 在命令,INI 文件,表达式中
————————————————————-?
[ Layout reference   ] @FILE:label, 局部的/全局的参考
————————————————————-?
[Bar options         ] 预选择,超时
—————————————————–?[ END ]
:

:command-title
谀哪口哪目谀履口穆目谀哪口目柯哪目谀哪縙
?   ?  吵 ?吵 ?趁哪拇??吵忱哪目
滥哪倮哪馁?  亮亮亮滥倭哪馁滥哪?
:

:commands
#                   WBAT 指令,语法                               ^

      WBAT command [参数]      (普通语法)
      call W.bat command [参数]      (当有变量时)

命令:
     box |menu| list [position] [colors] [@file][:label] [#bar[,time-out]]
     text            [position] [colors] [@file][:label]

     box      [position] [colors] ["text"] buttons [#bar[,time-out]]
     text     [position] [colors] "text"
     fill     [position] [dimensions] [colors] ["string"] [+shift]

     cls      [colors]               save     [ID number]
     cursor   [line] [+feeds]        restore  [ID number]
     ansi?    [code]                 font     [33|25]
     stdout   @file[:label]          pal

     fix box|menu|list...  (前缀: 对话框将保持可见当关闭时)

参数的细节请见下面的细节。
关于指令的功能性请参见 WBAT 浏览。
:


:wbat-batch
#                       W.BAT的结构                              ^

为了能产生用于批处理的变量, 需要一个专门的结构。 原来那种直接在程序里设置变量的方法已经不再支持。 因为它不能在视窗 NT/2000 之下工作, 而且对 Windows 版本来说是不安全的。

当你想要 WBAT 生产“变量”时(用于 box/menu/list 指令),

你必须用:    call W.BAT <command> <parameters>
来代替 :     WBAT.....

文件 W.bat 运行 WBAT.COM, 而且能很好的运用变量。
请阅读 W.bat 指令(下一页)来获得相关的重要信息。

作为一个更替,WBAT 能将设置定义写给 STDOUT,用于重定向到一个临时的批处理文件。
:

:wbat- menu [x]
[ W.BAT & command ]
[ W.BAT & details ]
[ STDOUT method ]
:

:wbat-command
#                           W.BAT                                      ^

批处理文件 W.bat 传递指令参数给 WBAT.COM。最多允许9个参数,但是通常你不需要那么多。

例: call w.bat box 5,12 (+white on blue) @file.ext:label #3,5
         --------1--2--3-----4----5---6----------7---------8-9

避免布局参考的空间,同时在颜色表达式中使用 "+" 代替 "明亮的"。 作为更替,整个参数字串可用双引号括起来 (不能在 DOS 6.x或更早期的版本下工作).

例子: call w.bat "box 5,12 (+white on blue) @file.ext:label #3,5"

引号内的字符串将作为单一的指令参数传递给w.bat。 WBAT.COM 将忽略引号。

注意:
“quick box”(没有布局)不能被用于 CALL W.BAT 结构。只通过 errorlevel 处理。
:

:wbat-details
#                        W.BAT的工作方式...

只在你感兴趣的情况下阅读这一部分。

在W.BAT的第一行运行给出参数的WBAT.COM:

       WBAT $W %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9

$W 参数告诉 WBAT.COM 从它运行的位置(目录)打开批处理文件 (也就是 W.BAT,与 WBAT.COM 在同一目录),并且从这个文件的第二行开始写设置定义,因此,他们将会在第一行执行完后被正确执行 (也就是 WBAT.COM 结束).

不要改变 W.BAT 的第一行。当每一次W.bat运行时,其它的行将被重写。

注意:万一你想重新命名 W.BAT: 只支持一字节的文件名,并且第一行的 $W 参数必须改变为文件名的名字(如T.BAT就为$T)。
:

:wbat-stdout
#                    通过 STDOUT 设定变量                       ^

WBAT 也支持一个更传统的方法生产变量,这在只读媒体(这时W.BAT不能运行)运行WBAT是很有用的。

当 wbat.com 发现输出重定向到一个文件时,SET 指令将写给STDOUT,文件必须是一个批处理(.BAT)文件,这样才能被调用来执行 SET 命令。

例子:   wbat box :start_menu > %%temp%%\wtemp.bat
        call %%temp%%\ wtemp.bat


推荐使用 %%temp%% 目录。
不要忘记删除临时文件。
::


:multiple
#                       多重指令                               ^

WBAT 能够在一行中接收几个命令。用感叹号(!)分开这些指令。

例子:
        wbat cls ! text 2,5 @file.ext:label1 ! box continue,back
             ---   ------------------------------------------
        wbat pal ! font ! cls
             ---   -------

程序名 WBAT 需在开始时写一次。

注意:

  如果“box”指令 (box/menu or list) 被包括在内,则必须放置于最后一行。

  在多重指令行中不能使用 CALL W.BAT 结构。
:


:P osition
#                    位置和大小                            ^

所有的对话框都能定义位置(行和列),就跟 TEXT 和 FILL 一样。位置通常是指对话框的左上角。 本位是 1,1.

如果一个 box 或 text 输出超过正屏幕的右下角边缘,WBAT 将自动调整位置。

默认值:

   boxes(box/menu/list) 放置于屏幕中央,如果只有行坐标被规定,box将放置于水平中间位置。

   Text 和 Fill          将从本位开始 (1,1)
:

:D imensions
#                       大小                                      ^


boxes 和 text 的输出大小由layout定义(最长的行和行数)。


FILL 允许指定的行和列,用圆括号()括起来。

例子:    wbat FILL 5,12 (10,30) (white on blue) "<>"

默认大小: 上至屏幕边缘。
:

:colors
#                              颜色                                   ^

内定的颜色在 WBAT.INI 中定义。 如果 INI 文件不存在,或颜色在 INI 文件中没有定义,内建的默认值将被使用。( 相同于原始的 INI 文件)

WBAT 支持不同的颜色规格:

     box/menu/list    对话框颜色
     text             本文颜色
     fill/cls         填充颜色

     (颜色表达式总是用圆括号()括起来)

其他的颜色, 如按钮和条的颜色,能在你的处理中通过变量来改变。

注意:
   默认的文本颜色是当前的屏幕的文本颜色(而不是由INI指定)
:

:color-expressions
#                       彩色表达式                               ^

颜色用这个格式定义: <前景> ON <背景>。单词“ON”是可选的。
在DOS对话框中,十六种颜色是可用的。 (8个正常,8 明亮的)

颜色:       black,red,green,blue,brown,cyan,magenta,white

可选择的:   bright 或用 “+”符号

同义字:     light=bright
            yellow=bright brown
            grey/gray=(normal)white

例子:    bright brown on blue
         +brown on blue
         black on +brown

注意: WBAT指令中的颜色表达式总是用圆括号()括起来。
:

:layref-menu [x]
[ default files ]
[ local batches ]
[ global batches]
[ layout in &BAT]
[ def. &extension]
:

:layref
#                       布局参考                                ^

box/menu/list 指令的布局由文件名和标签定义。

     *  文件名前加一个前缀@    e.g.    @dialog.txt
     *  标签前加一个前缀:      e.g.    :START

例子:     call w.bat box @dialog.txt:START

通常,你能依照 DOS 习惯定义文件,或者没有路径, 或者是相对路径,或者是完整的路径 (只能使用DOS 8.3 的命名规则)。
特别的, “+”前缀是指 WBAT 的 "公用" 目录。

例子:     call w.bat box @+dialog.txt:START

在大多数情况下你,将可省略文件名字,因为 WBAT 提供一个容易的方法使用默认的文件。

注意: 不要漏掉布局文件的扩展名。
参见“default extension”。
:

:layref-default
#                     默认的布局文件名                          ^


在提供的INI文件里,默认的布局文件是WBAT.TXT,用于这个演示。建议指定默认的文件时不要用路径。 使用“WBAT.TXT”或其他任何你喜欢的名字。

如下面的例子,你可以用本地的默认名字,就跟在全局的布局文件一样:

     call w.bat box :START       用于 WBAT.TXT 在当前目录
     call w.bat box +:START      用于 WBAT.TXT 与WBAT.COM同一个目录

注意: 当布局参考是用“+”或“:”开始时,“@”符号并不需要。
:

:layref-local
#              调用本地布局文件的本地批处理                      ^

当批处理总是在自己的目录中运行时,你可以使用本地的布局文件(在同一个目录里),不需要指定路径。

例子:    call w.bat @layout.txt:START
     或  call w.bat :START            (用于默认是 WBAT.TXT 的情况)

注意:

请确认:当WBAT运行时,当前驱动器和目录必须能在你的目录中被完全的选择。

要知道批处理(或在批处理中运行的程序)可能在程序返回到主菜单前改变驱动器号和/或目录。

推荐你适当的设置你的驱动器和目录(因为这种情况下你要处理其他文件)。

关于更替,请参见下面。
:

:layref-global
#                       Global layout file                            ^

如果批处理是设计为在任何的目录中运行,BAT文件就必须在PATH设置的目录里。

因为没有“地方目录”那可以装载,必须告知 WBAT 源文件的位置。

为了避免定义完全路径,把布局文件在和 WBAT.COM 相同的目录里。 你总是可以用“+”前缀来指向这一目录。

举例来说:    call w.bat +Xproject.txt:start
      或:    call w.bat +:start           (对于默认的布局文件是 WBAT.TXT 的情况)


注意: 你不需要为每个项目设计一个单独的文件。只须确定文件内没有重复的标签。布局文件的大小没有限制。
::

:layref-bat
#                    批处理文件中的布局源                          ^

如果你喜欢把布局直接放置在批处理文件中,请确定批处理过程不会陷入布局部分,并且没有任何重复的标签。 为了指定批处理文件作为布局源,可使用“%%0 批参数。

例子:   call w.bat box @%%0:Box-layout

WBAT 将会检查有效路径变量里的目录来定位文件,你不必担心布局文件的适当的目录。

这方法较适合”全局的“批处理,文件能通过路径来定位。在其他的情况下,这个方法是安全的,只要你不改变当前的目录和驱动器号(%%0包括了批处理文件的完整路径)。

注意: DOS 用命令代替了 %%0 ,就象敲入DOS命令一样。
:

:layref-extension
#                       默认的扩展名                               ^


实际情况下,插入DOS的指令用%%0参数替代,扩展名.BAT可以省略。

要使%%0参数工作,WBAT 假设默认的扩展名是.bat,无论何时,都可指定没有扩展名的布局文件。

基于这一个理由,不要使用真的没有扩展名的布局文件。
:

:bar-options
#                       Bar options                                     ^

默认的高亮条目设置成对话框、菜单、列表的第一选项。要改变这个位置,可在选项号前加一个“#”作为最后的参数。

例子:    call w.bat :main #3


条目的位置参数也接受如 a-b 或 a+b 一样的数学表达式。
这可用于菜单里预设选择下一个选项。

关于详细的信息请参见“Control”部分 (使用变量,? 变量).
:

: time-out
#                         time-out                                      ^

可选的,超时设置可使用于在(设置的)秒数后自动关闭对话框,并返回预设的选项作为被选择项。

例子:    call w.bat box :main #3,5

重要的:

预选项必须是一个按钮,因为当超时时 WBAT 产生一个 ENTER 键,而 ENTER 关闭对话框只能通过按钮!

当一个键被按下或鼠标被单击时,超时将被取消,但不管有没有效的输入都没有影响。

最大的超时:3,600 秒 (1 小时)

倒数计时显示装置:

你可以在对话框的任何位置显示倒数计时,在布局中用“#”表示
详情请参见“Layouts / Timer Display”
:

:layout-menu “对话框、菜单、文本布局的设计” [x]

[ General info    ] 标签,大小,变量
--------------------------------------------------------------?
[ Box Style       ] 框体,阴影,标题,[x] ,分割线。
--------------------------------------------------------------?
[ Control Elements] 按钮,&热键,输入和其他的元件
--------------------------------------------------------------?
[ Text Attributs  ] 本文高亮和表头线
--------------------------------------------------------------?
[ Timer Display   ] 倒数计时闭一个对话框
--------------------------------------------------------------?
[ Symbol Summary  ] 所有的特殊符号
--------------------------------------------------------------?
[ Color Test      ] 见 Colors.bat
------------------------------------------------------?[ 结束 ]
:

:layout-title
?   谀哪口口哪目?  口穆目谀哪縙
?   媚哪蠢穆馁?  吵忱 ? 滥哪?
聊哪倭 ? ? 滥哪倮哪馁 ? 滥哪?
:

:layout-general
#                       一般信息                             ^

一个布局可以自成一个文件,也可以跟其他的布局单元合在一起,这时每个布局都用“标签(label)”识别身份。

标签的前面有一个冒号(:), 像批处理文件。但长度没有象DOS和Win9x 那样的 8 个字符的限制。

布局是一个纯 ASCII 本文。用方括号[]括起来的对话框的控制元件能被放置在任何地方。布局的结束是在最左端的一列加一个冒号(:)(这个冒号也可以是下一个布局标签)

布局总是产生一个矩形的区域, 这个矩形的大小取决于最长的行和行的数目。对话框将加在一个框架(同上下左右各一条线组成)上,其它空间,将由空白空间和空行填充。

注意:为防止你的编辑器将一行后面的空白字段截去,可用脱字符(^)来标记行的结束(这将不会显示出来)。
:

:layout-variables
#              在布局中使用环境变量                ^

在批处理文件中,变量 ( 带%符号) 会被替代。
例外: 不能在控制元件中使用变量。 (如:按钮)

例子 (assuming FILE=SAMPLE.TXT)
     在布局中:   read %%file%% for details
     在输出中:   read SAMPLE.TXT for details

注意:字串的大小会影响对话框的宽度! 对话框的行数超过 78bytes 将产生错误信息。
     文本超过 80bytes 将被切断。

固定输出长度的变量能通过用下划线填充来完成。 这保留的“栏位”(包括变量的名字)将
填充进字串里。 根据实际的大,字串将会被填时空白空间或被切断(!)。

例子
    在布局中:  %%VAR%%__________ %%VAR2%% or more text ...
    在输出中:  actual string    string2 or more text ...
:

:layout-Style
#                      布局类型                                        ^


WBAT 从 WBAT.INI 里读取颜色和其他的设定。

你可以使用你的偏爱设置, 并将它用于你的所的对话框和其他的WBAT输出。

当然,你可以用变量来临时改写所有的 INI 文件的设定
( 变量名 =W项目名).
详见“Setup/INI file/override部分”

注意:对话框颜色也在box/menu/list指令中指定。
:

:style-menu "Box style" [x]

[ frame and shadow   ]
[ title and deviders ]
[ highlighting       ]
[ extra ESC button   ]
::

:Style-frame
#                       对话框的框架

在这个演示中使用了一个空白的框架,但是你也可以在 INI 文件中定义一个不同的图案: 在 3 点之前想像一个 3 的最小架框,
           谀縹
举例来说: ~?硚 然后排成一列放 9个字符: "~ 谀砍忱馁~"
       ~ 滥賬
中央的字符应该是空白,因为它将填充对话框。


#                       对话框阴影

当在INI文件里找到有效的阴影颜色时,一个阴影将是可见的(默认值:淡黑色)

要关掉阴影, 请设置“shadow=NONE
::

:style-title
#                         对话框标题

对话框标题(替代上边框,见下述)可在布局的标签行里设置。双引号是必须的。

例子:      :style-menu "Box style"
           .....

标题位于中间。 颜色由 INI 文件里的BoxTitle 指定。

#                         分割线

为了产生不同颜色的分割线,可使用“?”字符(ASCIII 码: 196)。这将总是显示INI文件里定义的颜色来显示分割线。只有前景颜色才有(背景规定会被忽略).
::

:style-highlighting
#                   对话框的高亮文本                            ^


要高亮一个单词或文本段,可在单词或文本段的开始和结束处加符号 (~)。

颜色由 WBAT.INI 里的 BoxHi 定义。


注意:
相同的功能可用以 TEXT 输出。 ( 颜色由 INI 文件里的 TextHi 定义),“~”符号可用其他符号代替,要在 INI 文件里的“general”部分定义HiSymbol。
HiSymbol。

:


:style-extra
#                      特别的 ESC 按钮

如果你希望在对话框的右上角有 Windows 风格 [x] 按钮,将它加入布局文件的标签行里。

例子:    :style-menu "Box style" [x]

  或:    :any_box [x]


方括号[]是不可缺少的,任何符号都可用来代替“x”。


注意:

    点一下 [x] 按钮有与按ESCAPE键相同的效果。
:

:Layout-control
#               布局中的控件


所有的控件都被括在方括号[]里。

第一个字符决定控件的类型:

       [$varname    ] 输入栏
       [!]            检查框
       [.]            单选按钮
       [? button ]    ESCAPE按钮
       [ button ]     (其他的)普通按钮或菜单条目

ESCAPE 按钮看起来像任何其他的按钮 ("?" 被移除),但触发的是 ESC 键。 对于特别的 ESC 处理请见“Control”部分。

要在一个普通的对话框文本里使用打开的方括号,它必须用两个,举例来说:[[ in square brackets ]

:

:element-menu [x]
[ input field   ]
[ checkbox      ]
[ radio buttons ]
[ hotkeys       ]
:

:hotkeys
#                       热键                                         ^

这个演示的按钮或菜单条的热键用红色标记 (见 INI 文件)。要屏蔽热键功能,可设置 HotKey=NONE。

按钮或菜单项目的第一个字符是默认的热键字符。在多个按钮的第一个字符相同时,可标记其他的字符,只需在该字符前加个“&”符号。

例子:     Buttons:     [ continue ][ ca&ncel ]
          Menu item:   [ WBAT &Configuration ]

注意:
  热键字母也可以与ALT键组合使用。(当光标是在一个输入栏中的时候,就提供了这种热键支持)。

  & 符号也可用于“quick boxes” 。

  ~& 符号也决定,哪个词作为变量返回( 见Control部分)

  对个别的按钮可通过一个拖尾的 & 符号解除。
:

:layout-text
#                       Text Output                                     ^

默认情况下,本文将以基于屏幕的颜色被显示。在 WBAT.INI 里没有默认的文本颜色。

为了显示新页的本文,首先得清除屏幕。

例子:       wbat cls! text 2,4 :layout-text

颜色也可在命令行中指定,然而,要注意 WBAT TEXT 通过行数和最长的行来产生一个矩形框,这一区域周围的颜色将保持不变。

当使用空格来填充时,可在行末用脱字符号(^), 这一个符号将不会表示。
:

:layout-timer
#                      倒计时显示                                ^

当你想使用计时器功能在一个给定的秒数后关闭一个对话框时,倒计时可在对话框的任何位置显示,(不在控件里, 也不在“quick box”里),用记号 #? 作为位置标记。

万一用户取消倒计时(用任何输入),计数是被“--”代替。

计时器语法见“Commands/Bar Options”
::

:layout-tbox “计时器测试”

     这个对话框将在 15 秒之后关闭,并返回标记按钮的 errorlevel。

                     #?

         [    ok    ][ cancel ]
:

:layout-symbols
#                      特别的符号                           ^

[  (box)       标记按钮或其他控件,直到 ] 结束。
&  (box)       标记热键字符 (只能在按钮里使用)。
%% (box/text)  环境变量处理,像在批处理文件中一样。
~~ (box/text)  最亮本文部分 (开始/结束)
#  (text)      标题栏 (只能用在最

Config.sys:
[menu]
菜单
menuitem=CD, Start computer with CD-ROM support.
菜单项=CD,启动计算机带光驱支持
menuitem=NOCD, Start computer without CD-ROM support.
菜单项=NOCD,启动计算机不带光驱支持
menuitem=HELP, View the Help file.
菜单项=HELP, 查看帮助文件
menudefault=CD,30
默认选项=CD, 默认倒计时30秒
menucolor=7,0
菜单颜色= 是黑底白字
0= 黑色
1=蓝色
2=绿色
3=青色
4=红色
5=红紫色
6=棕色
7=白色
8=灰色
9=淡蓝色
10=淡绿色
11=淡青色
12=淡红色
13=淡红紫色
14=黄色
15=淡白色

[CD]
在选菜单项=CD,启动计算机带光驱支持,同时加载的驱动程序
device=himem.sys  高端内存程序
device=oakcdrom.sys /D:mscd001 光驱驱动 命名为“mscd001”
device=btdosm.sys
device=flashpt.sys
device=btcdrom.sys /D:mscd001  光驱驱动 命名为“mscd001”
device=aspi2dos.sys   18,802 实模式的 Adaptec CD-ROM 驱动程序
device=aspi4dos.sys    8,913 实模式的 Adaptec CD-ROM 驱动程序
device=aspi8dos.sys   22,077 实模式的 Adaptec CD-ROM 驱动程序
device=aspi8u2.sys    24,001 实模式的 Adaptec CD-ROM 驱动程序
device=aspicd.sys     10,002 实模式的 Adaptec CD-ROM 驱动程序
[NOCD]
在选菜单项= NOCD,启动计算机不带光驱支持,同时加载的驱动程序
device=himem.sys  高端内存程序
[HELP]
在选菜单项= HELP,查看帮助文件,同时加载的驱动程序
device=himem.sys  高端内存程序
[COMMON]
公用程序
files=10
同时允许打开的文件数量=10,一般是30
buffers=10
设置系统的磁盘缓存块数=10,一般是30
dos=high,umb
把DOS加入高端内存
stacks=9,256
设置DOS堆栈的个数
devicehigh=ramdrive.sys /E 2048
把ramdrive.sys载入高端内存
lastdrive=z
最后盘符为Z


autoexec:
@ECHO OFF
屏幕提示关
set EXPAND=YES
设置自释放=是
SET DIRCMD=/N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
设置虚拟内存的参数
cls清屏幕
call setramd.bat %LglDrv%
调用 setramd.bat 路径是虚拟内存
set temp=c:set tmp=c:设置临时文件夹路径为C:path=%RAMD%:\;a:\;%CDROM%:设置公用路径,在DOS下就不用来回切换盘符了
copy command.com %RAMD%:\ > NUL
复制command.com到虚拟内存      >NUL是不显示执行后的结果
set comspec=%RAMD%:\command.com
设置DOS外壳为%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
复制extract.exe到虚拟内存        >NUL是不显示执行后的结果
copy readme.txt %RAMD%:\ > NUL
复制readme.txt到虚拟内存        >NUL是不显示执行后的结果
:ERROR
错误
IF EXIST ebd.cab GOTO EXT
如果ebd.cab存在转到 EXT
echo Please insert Windows 98 Startup Disk 2
屏幕上将显示“请插入Windows 98 启动盘 2”
echo.空一行
pause暂停键
屏幕上将显示“Press any key to continue…”
意思是按任意键继续…
GOTO ERROR
转到 ERROR
:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
在虚拟内存中执行extract.exe,把ebd.cab里面的东西释放出来
echo The diagnostic tools were successfully loaded to drive %RAMD%.
在屏幕上显示“诊断工具已经成功的载入内存"X"”X是你虚拟内存的盘符
echo.
IF "%config%"=="NOCD" GOTO QUIT
如果在config.sys选择NOCD转到QUIT
IF "%config%"=="HELP" GOTO HELP
如果在config.sys选择HELP转到HELP
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:Z
把虚拟内存中MSCDEX.EXE(光驱的加载程序),把光驱命名为mscd001,赋予盘符为Z
Z:
切换到Z盘
CD\Win98
切换到文件夹Win98目录下
setup
执行setup.exe文件(98的安装文件)
echo.
GOTO QUIT
转到QUIT
:HELP
cls
call help.bat
调用 help.bat 在软盘里有这个文件
等help.bat执行后。
echo Your computer will now restart and the startup menu will appear.
屏幕上显示“你的计算机现在将会重新启动,启动菜单将会出现”
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
restart.com重启的执行程序
GOTO QUIT
转到QUIT
:QUIT
echo To get help, type HELP and press ENTER.
屏幕上将显示,输入“help”后回车来查看帮助文件。
echo.
rem clean up environment variables
清理所有环境变量(上面设置过的)
set CDROM=
设置 CDROM 为 … 盘,其中…是变量
set LglDrv=
设置 虚拟内存 为 …,其中…是变量
特别注意:
config.sys里的menuitem=CD 和 下面 [CD] 还有 autoexec.bat里的 CD 一定要保持一致,否则系统会找不到该执行的程序。依此类推….
device=oakcdrom.sys /D:mscd001
光驱驱动 命名为“mscd001”
光驱的名字也要和autoexec.bat里面的保持一致,目的和上面一样


流传一:
所需工具软件
ximage.exe
Setide.exe 用来更改IDE和电源模式
SYSPREP.EXE 封装程序
devcon.exe 用来删除驱动

一、制作PE引导映像
1. 提取原始Install.wim的1和2映像解压到空分区(或虚拟分区,用命令:subst x: d:\boot subst y: d:\drive)
① 将 install.wim 中的内容张开到驱动器x:和y:
设 ximage 所在的目录在 D:\ximage;进入该目录,键入
ximage /apply d:\install.wim x: 1
ximage /apply d:\install.wim y: 2

② 将 x: 和 Y: 由的文件生成新的 WIM 文件:
ximage /flags 1 /boot x: e:\Install.wim "WinPE Boot Image"
ximage /flags 2 /append y: e:\Install.wim "WinPE Drive Image"


现在生成的Install.wim镜像已经含有PE必需的启动信息和驱动信息. (此文件可做个备份方便以后调用)

注意:如果你已经有带PE引导的*.wim文件,可不做此步骤


二、安装全新的Windows XP 和其它软件

三、删除修改驱动程序
运行 Setide.exe


四、优化系统
1、关闭“电源管理”下的的休眠功能。右击桌面空白处,选择“属性 →屏幕保护程序→电源→休眠”,取消“启用休眠”前的钩即可。

2、关闭系统还原
 
3、如果你安装了一些通过Windows Installer安装的软件,并且以后不打算删除或者修复这些软件,还可以有选择的把C:\WINDOWS\Installer下的一些.msi文件删除。

4、解压XP安装盘\SUPPORT\TOOLS\DEPLOY.CAB中的SYSPREP.EXE、setupcl.exe、setupmgr.exe到C:\sysprep目录

五、运行封装程序

1、运行C:\sysprep\setupmgr.exe 制作SYSPREP.INF文件

2、执行C:\sysprep\devcon.exe remove * 删除驱动

3、运行C:\sysprep\SYSPREP.EXE -mini -noreboot 封装系统

4、进行SYSPREP后计算机硬件抽象层HAL(电源模式)的完美解决 见下方的进行SYSPREP后计算机硬件抽象层HAL(电源模式)的完美解决
5、重启电脑后用PE系统盘引导进入PE系统


六、在PE系统中制作映像文件

1、替换C:\WINDOWS\SYSTEM32\SETUP.BMP (安装背景图片、可不做)

2、追加自己封装的系统分区:
先删除pagefile.sys

del C:\pagefile.sys
ximage.exe /flags 0 /append C: D:\Install.wim "Windows XP VOL SP2 "
C: 表示系统所在盘符


4、用UltraISO将做好的install.wim替换iso中的install.wim


七、刻盘安装!

可制作2K,2003,XP的WIM安装盘


此制作方法还用2个问题
1、C:\ntldr文件需手动恢复
2、制作2K系统时在恢复系统时需修改Boot.ini文件(将WINDOWS改为WINNT)

(我自己写了个程序在恢复系统时自动恢复ntldr文件和修改Boot.ini文件)


ISO包含文件:

BOOTBOOTFIX.BIN
FS_EXT.SYS
SETUPLDR.BIN

SOURCESeula.txt
PIDGEN.DLL
setup.exe
SETUPP.INI
setup.exe.local
spflvrnt.dll
spwizeng.dll
wdscore.dll
wdsutil.dll
win32ui.dll
win32uitheme.dll
winsetup.dll
xmlrw.dll

 

网上的另一个方法:

WIM 封装的 Windows XP SP2 制作过程全记录

具体步骤如下:
1、安装 Windows XP SP2 最新版本,打好各种补丁,调整好各种设置。
2、用 Ghost 做好备份。
3、删除可以删除的各种垃圾,以减小体积,这一步一定要小心。
3、用 Setupmgr.exe 生成自动封装脚本 sysprep.inf 文件。
4、用 Sysprep.exe 执行封装操作。
5、用深山红叶启动光盘启动电脑,进行 Windows PE。用 Ximage.exe 执行 lzx 压缩。
   ① 下载 Longhorn 光盘,从中提取出 install.wim 文件放在 E:install.wim;
   ② 执行命令 ximage /info E:install.wim,观察看到的信息:


Available Image Choices:
————————
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<WIM>
        <IMAGE INDEX="0">
                <DIRCOUNT>33</DIRCOUNT>
                <FILECOUNT>979</FILECOUNT>
                <TOTALBYTES>152267917</TOTALBYTES>
                <CREATIONTIME>
                        <HIGHPART>0×1C58977</HIGHPART>
                        <LOWPART>0×96FB6AE0</LOWPART>
                </CREATIONTIME>
                <DESCRIPTION>WINPE BOOT IMAGE</DESCRIPTION>
                <FLAGS>1</FLAGS>
        </IMAGE>
        <IMAGE INDEX="1">
                <DIRCOUNT>32</DIRCOUNT>
                <FILECOUNT>976</FILECOUNT>
                <TOTALBYTES>152267730</TOTALBYTES>
                <CREATIONTIME>
                        <HIGHPART>0×1C58977</HIGHPART>
                        <LOWPART>0xB38CF480</LOWPART>
                </CREATIONTIME>
                <DESCRIPTION>WINPE DRIVE IMAGE</DESCRIPTION>
                <FLAGS>2</FLAGS>
        </IMAGE>
        <IMAGE INDEX="2">
                <DIRCOUNT>1882</DIRCOUNT>
                <FILECOUNT>22874</FILECOUNT>
                <TOTALBYTES>3965721128</TOTALBYTES>
                <CREATIONTIME>
                        <HIGHPART>0×1C58C3D</HIGHPART>
                        <LOWPART>0×9A7EE2A0</LOWPART>
                </CREATIONTIME>
                <DESCRIPTION>ALL IN 1 IMAGE</DESCRIPTION>
                <FLAGS>0</FLAGS>
        </IMAGE>
</WIM>
   可以看到 flag 1 和 flags 2 包含了Windows PE 的启动信息和驱动部分。
  ③ 生成两个虚拟驱动器:
md D:\boot
md d:\drive
subst x: d:\boot
subst y: d:\drive
  ④ 将 install.wim 中的内容张开到驱动器x:和y:
设 ximage 所在的目录在 D:\ximage;进入该目录,键入
ximage /apply e:\install.wim x: 1
ximage /apply e:\install.wim y: 2
   ⑤ 将 x: 和 Y: 由的文件生成新的 WIM 文件:
ximage /flags 1 /boot x: e:\install0.wim "BOOT IMAGE"
ximage /flags 2 /append y: e:\install0.wim "DRIVE IMAGE"
新生成的 install0.wim 文件比 install.wim 文件小很多。
   ⑥ 覆盖了原来的 install.wim 文件:
copy e:\install0.wim e:\install.wim
   ⑦ 将启动盘的所有内容压制到新 install.wim 文件中:
xiamge /flags 0 /append c: e:\install.wim "WINXP SP2 IMAGE"
这一步的时间很长,图拉丁1.2G 时执行 Ghost 只需要 4 分钟,用 ximage lzx 压缩需要 21 分钟。
6、用 Ghost 恢复系统。
7、将 insall.wim 文件放入下载的 iso 文件(www…net/bbs 有.提供的 iso 下载)中,重新生成 iso 镜像,刻盘,测试。
至此,整个封装过程结束。
由于 封装的 iso 内有大量的新驱动,在 vm 中测试可能会蓝屏,但在主机上安装不会有问题 

流传三:

/capture表示生成镜像,/flags 1 表示用户自定义的标记。这里仍然遵循原镜像的约定。

/lzx 是压缩参数,经过测试,这是最大的压缩参数。

引号里的参数是自定义的描述性信息

12.删除D分区所有文件,从原install.wim里释放第二部分到D分区,命令如下

ximage /apply  D:\install.wim  J:  2

(“2”不能少,用来指定提取第二部分驱动信息)

step 4将D分区里的驱动信息追加到step 2中生成已经带启动信息的install.wim中,命令如下:

ximage /append /lzx /scroll /flags 2 D: e:\install.wim "WinPE Drive Image"

(/append表示追加,/scroll表示以滚屏方式显示进度,/flags 2表示作的标记,仍然遵循原镜像的约定)

现在生成的wim镜像已经含有PE必需的启动信息和驱动信息.

13.然后追加自己封装的系统分区:

ximage.exe /flags 0 /append D: install.wim "Windows Longhorn pro"

14.将wim改名为install.wim.

15.用ximage /info 察看映像的indexes,如果是0、1、2,请改为1、2、3(用16进制编辑器)。

(笔者注:没明白为什么要改,老外有人先做个空映像的方法代替)

16.用UltraISO将做好的wim替换4074的iso中的wim.

17.然后刻盘安装!

Sysprep是一个“系统准备”工具,主要功能是在创建磁盘映像之前删除当前操作系统的所有唯一性信息,便于Ghost之类的工具复制磁盘映像。不过除此之外,Sysprep还有其他许多功能,充分利用这些功能将大大提高映像的质量。

  一、延长映像的生存期

  建筑需要坚固的基础才能经受住时间的考验,同样地,构造系统映像也需要优质的原材料和高超的技巧。为了构造出高质量的系统映像,不能让根本没用的驱动程序、注册键、应用程序混入映像文件,所以用来创建映像的源机器一定要全新安装。

  在准备创建映像的过程中,Sysprep会断开源机器与域的联系——所以只要有可能,应该尽量避免将源机器加入到任何域,可以用本地的Administrator帐户安装应用程序、Service Pack和实施各种定制操作。为了尽可能地延长映像文件的使用时间,这个阶段的定制操作应当慎重。如果要改变某些设置,尽可能用cmdlines.txt脚本(后面将有详细讨论)。

  在Windows中,每一个用户帐户有它自己的一套配置数据,如每个用户有不同的桌面设置、“我的文档”等,这类配置数据统称为配置文件。Windows会自动为每个新建的用户帐户设置默认的配置文件,但默认配置文件往往不能满足需要,必须经过定制才适合使用。对于大多数小型网络环境(或独立的机器),由于没有域服务器,不能通过组策略发布和管理用户的配置文件。那么,是否可以将定制的配置文件作为默认的配置文件加入到映像文件,也就是说,以后新建用户帐户时,让Windows自动将定制的配置文件作为默认配置文件呢?答案是肯定的,具体实现步骤是:

  ⑴ 建立一个临时的本地帐户,登录该帐户,定制桌面、开始菜单以及其他想要定制的与用户配置文件有关的设置,完成后,注销该帐户,然后用Administrator帐户登录。

  ⑵ 为便于后继步骤的操作,配置资源管理器,使其显示隐藏的文件和文件夹。

  ⑶ 右击“我的电脑”,选择“属性”,然后点击“高级”选项卡。在“用户配置文件”下面点击“设置”,选择为临时用户创建的配置文件,然后点击“复制到”,转到%SystemDrive%\Documents and Settings,选择Default User文件夹,点击“确定”。

  ⑷ 在“允许使用”下面点击“更改”,输入everyone,如图一;点击“确定”、“确定”。

⑸ 当系统询问是否要覆盖现有的默认用户配置文件时,回答“是”。

经过这番设置之后,第一次登录该系统(或用该映像创建的系统)的用户将采用上面设定的默认用户配置文件。

  大多数较新的机器都需要操作系统安装盘本身没有提供的驱动程序。那么,如何让这类驱动程序也能自动安装呢?你必须把它们复制到硬盘上的某个位置,然后修改sysprep.inf指定这些位置(参见附录“自动创建Sysprep.inf文件”)。具体的操作步骤是:

  ㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。

  ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将清除它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。

  ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。

  ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:

 


;SetupMgrTag
[Unattended]
OemSkipEula=Yes
OemPnPDriverPath=Sysprep\Drivers\NETWORK;Sysprep\Drivers\AUDIO;
  Sysprep\Drivers\MODEM;Sysprep\Drivers\VIDEO;

二、挖掘sysprep.inf的潜力

  要让同一个映像适用于不同类型的硬件系统,最关键的是要设置好sysprep.inf文件的SysprepMassStorage小节。你可以手工在这个小节中加入大容量存储设备的驱动程序,使得具有不同磁盘控制器的系统能够共享映像;或者干脆一点,你可以让Sysprep自动填写该小节,加入操作系统带有的所有大容量存储设备。

  第二种办法的优点是一个映像文件可以支持大量的硬件设备——即使是创建映像时你还不可能想到的那些设备;其缺点是,在Sysprep处理期间引入所有的驱动程序需要额外耗费10到15分钟的时间,而且必须在目标系统上用-clean参数运行Sysprep。

  让Sysprep自动加入大容量存储设备的操作步骤是:

  ⑴ 首先确保sysprep.inf同时提供Sysprep和SysprepMassStorage小节。

  ⑵ 在Sysprep小节下面创建如下指令:BuildMassStorageSection=Yes。

  ⑶ 打开一个命令窗口,转到sysprep.exe所在的目录,执行命令sysprep -bmsd。Sysprep将构造出SysprepMassStorage小节的内容并结束。

  ⑷ 接着执行Sysprep -mini,完成最后的Sysprep操作。

  除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。

  最后,你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE\SYSTEM\Setup\OemDuplicatorString确定原来的映像。

  三、自动执行操作

  为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。

  ■ cmdlines.txt

  这个文件位于%SystemDrive%\Sysprep\i386\$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序:


[Commands]
"%SystemDrive%\Sysprep\Sysprep.exe -clean"
"FullPath\Script1.cmd"
"FullPath\Program2.exe -arg1"

  cmdlines.txt文件的格式很简单,不过要注意以下几点:

  ⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。

  ⑵ 必须将所有要用到的文件复制到本地硬盘上。

  ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。

  ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。

  ■ GuiRunOnce

  如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户第一次登录时运行,要注意的几点是:

  ⑴ 必须启用了Autologon才能让GuiRunOnce设置的命令生效,即必须在GuiUnattended小节设置AutoLogon=Yes。

  用引号括起每一个命令。

  ⑵ GuiRunOnce小节里面的命令在当前登录用户的安全上下文下运行,注意用户权限是否允许运行当前的命令。

  ⑶ 为保证所有的命令都被执行,必须禁止重新启动。如果某个用GuiRunOnce启动的程序提供了重新启动系统的选项(许多支持无人值守安装的软件都这样),你必须关闭重新启动。如果系统重新启动,GuiRunOnce里面后继的命令将不再被执行。

  ⑷ 如果要安装多个应用软件,用start命令和/wait参数启动安装程序,避免各个程序之间相互影响。

四、附录:自动创建sysprep.inf文件

  创建sysprep.inf文件最方便的途径是使用微软的Setup Manager(安装管理器)程序。对于Windows XP,你可以在XP CD-ROM的\Support\Tools目录的deploy.cab文件里找到它。

  将安装管理器的执行文件setupmgr.exe复制到硬盘,双击执行,向导将询问是否要创建一个新的应答文件,还是修改现有的应答文件。选择“创建新文件”,指定这将是一个用于Sysprep的文件(图二),选择将用新建的应答文件部署的平台(图三)。


根据实际需要,分别设定常规、网络、高级类选项(图四),最后点击“完成”,安装管理器将创建sysprep.inf文件并提示输入保存文件的位置。完成后,你可以用记事本打开sysprep.inf文件进行分析了。




  大多数较新的机器都需要操作系统安装盘本身没有提供的驱动程序。那么,如何让这类驱动程序也能自动安装呢?你必须把它们复制到硬盘上的某个位置,然后修改sysprep.inf指定这些位置(参见附录“自动创建Sysprep.inf文件”)。具体的操作步骤是:

  ㈠ 在系统驱动器的根目录下创建一个Sysprep目录,用来保存运行Sysprep必需的执行文件和sysprep.inf文件。

  ㈡ 在系统驱动器的根目录或Sysprep目录下创建一个Drivers目录——如果你要让目标机器运行好最小安装后能够使用这些驱动程序,则在根目录下创建Drivers文件夹;如果将驱动程序保存在Sysprep目录下的文件夹,最小安装过程将清除它们(最小安装是Windows常规安装过程的简化版,它只询问尚未在sysprep.inf中回答的问题)。

  ㈢ 在Drivers文件夹下,为不同的硬件设备创建相应的子目录保存驱动程序,将所有第三方驱动程序复制到相应的子目录。

  ㈣ 接下来还要设置一下sysprep.inf文件,以便最小安装过程能够找到驱动程序,如下面的例子所示。注意安装程序不会搜索OemPnPDriverPath路径的子目录,所以每一个目录都必须分别指定:

 


;SetupMgrTag
[Unattended]
OemSkipEula=Yes
OemPnPDriverPath=Sysprep\Drivers\NETWORK;Sysprep\Drivers\AUDIO;
  Sysprep\Drivers\MODEM;Sysprep\Drivers\VIDEO;

二、挖掘sysprep.inf的潜力

  要让同一个映像适用于不同类型的硬件系统,最关键的是要设置好sysprep.inf文件的SysprepMassStorage小节。你可以手工在这个小节中加入大容量存储设备的驱动程序,使得具有不同磁盘控制器的系统能够共享映像;或者干脆一点,你可以让Sysprep自动填写该小节,加入操作系统带有的所有大容量存储设备。

  第二种办法的优点是一个映像文件可以支持大量的硬件设备——即使是创建映像时你还不可能想到的那些设备;其缺点是,在Sysprep处理期间引入所有的驱动程序需要额外耗费10到15分钟的时间,而且必须在目标系统上用-clean参数运行Sysprep。

  让Sysprep自动加入大容量存储设备的操作步骤是:

  ⑴ 首先确保sysprep.inf同时提供Sysprep和SysprepMassStorage小节。

  ⑵ 在Sysprep小节下面创建如下指令:BuildMassStorageSection=Yes。

  ⑶ 打开一个命令窗口,转到sysprep.exe所在的目录,执行命令sysprep -bmsd。Sysprep将构造出SysprepMassStorage小节的内容并结束。

  ⑷ 接着执行Sysprep -mini,完成最后的Sysprep操作。

  除了SysprepMassStorage小节之外,sysprep.inf还有其他许多配置项目值得好好利用。例如,UserData小节用来定义安装期间典型问题的答案,凡是最小安装期间希望手工输入的内容,保留空白即可。如果你想让映像既能够用于多处理器的系统,也能够用于单处理器的系统,可以在Unattended小节中设定UpdateHAL或UpdateUPHAL。Identification小节的作用是自动加入域或者工作组。

  最后,你可以用GuiUnattended小节的OEMDuplicatorString设置来辅助管理映像文件的修订,这个设置选项将把指定的字符串值加入到所有由该映像构造的系统;以后,当你要检查一下某台机器的操作系统是由哪一个映像构造时,可以检查注册键HKEY_LOCAL_MACHINE\SYSTEM\Setup\OemDuplicatorString确定原来的映像。

  三、自动执行操作

  为了提高安装过程的灵活性,你可以在安装期间或之后自动运行一些命令。如果要在最小安装结束后安装软件或运行程序、批命令文件、脚本,只要将相应的指令写入cmdlines.txt文件;如果要在目标系统重新启动后安装程序或运行命令,则必须将指令写入sysprep.inf文件的GuiRunOnce小节。

  ■ cmdlines.txt

  这个文件位于%SystemDrive%\Sysprep\i386\$oem$目录。下面是一个例子,它以-clean参数运行Sysprep,另外还执行Script1批命令、Program2程序:


[Commands]
"%SystemDrive%\Sysprep\Sysprep.exe -clean"
"FullPath\Script1.cmd"
"FullPath\Program2.exe -arg1"

  cmdlines.txt文件的格式很简单,不过要注意以下几点:

  ⑴ sysprep.inf文件Unattended小节必须声明InstallFilesPath,并且使其指向$oem$文件夹所在的位置。

  ⑵ 必须将所有要用到的文件复制到本地硬盘上。

  ⑶ 如果cmdlines.txt包含的命令修改或创建了注册表设置,这部分设置将作为默认用户的设置写入,对所有新建的用户帐户都有效。

  ⑷ 不能用cmdlines.txt安装那些使用Windows Installer的软件(.msi软件包)。

  ■ GuiRunOnce

  如果要在目标系统重新启动后再运行命令、批命令文件或脚本,可以在sysprep.inf文件的GuiRunOnce小节设置。该小节中设置的命令将在用户第一次登录时运行,要注意的几点是:

  ⑴ 必须启用了Autologon才能让GuiRunOnce设置的命令生效,即必须在GuiUnattended小节设置AutoLogon=Yes。

  用引号括起每一个命令。

  ⑵ GuiRunOnce小节里面的命令在当前登录用户的安全上下文下运行,注意用户权限是否允许运行当前的命令。

  ⑶ 为保证所有的命令都被执行,必须禁止重新启动。如果某个用GuiRunOnce启动的程序提供了重新启动系统的选项(许多支持无人值守安装的软件都这样),你必须关闭重新启动。如果系统重新启动,GuiRunOnce里面后继的命令将不再被执行。

  ⑷ 如果要安装多个应用软件,用start命令和/wait参数启动安装程序,避免各个程序之间相互影响。