公元228年12月,诸葛亮在第一次北伐失败后,经过半年多的休整出兵陈仓。而曹魏方对诸葛亮的这次行动早有预料,并提前做出了相应预备,此役也以诸葛亮攻陈仓未克,军粮耗尽不得不退回蜀中而告收场。
以上即是陈仓战役,亦被称之为诸葛亮的第二次北伐。
这本是蜀、魏两国间的一次寻常交锋,现今却成为了部分人贬损诸葛亮军事才能的主要依据。之所以会如此,主要缘自《三国志明帝纪》中裴松之注引《魏略》的一段记叙:“亮自以有众数万,而昭兵才千余人……昼夜相攻拒二十余日,亮无计,救至,引退。”——在持如此观点的人看来,身率数万之众的诸葛亮连仅有千余人屯守的陈仓城都攻不下来,足以凸显诸葛亮军事才能的平庸。而《魏略》关于此役双方兵力的记载在经过后人层层加码之后达到了十万对一千(余?)的极致,这无疑更加深了人们对诸葛亮军事才能的不信任感。
占据兵力优势的诸葛亮攻不下陈仓是否就能说明其不擅军事?我以为不然。
我认为,陈仓之战蜀魏双方的蜀、魏兵力未必如《魏略》所记如此悬殊。
早在诸葛亮第一次北伐之后,曹魏的西线统帅曹真就预料到诸葛亮日后会经陈仓北进,并派郝昭等人驻守陈仓,修缮城池以备不虞(真以亮惩於祁山,后出必从陈仓,乃使将军郝昭、王生守陈仓,治其城——曹真传)。既然曹真有此先见之明,知道诸葛亮“后出必从陈仓”,又如何会仅仅在陈仓仅留军千余人?若果真如此,则只有两种可能:一是如果诸葛亮来袭曹真的援军可以朝发夕至驰援陈仓,但这个可能被《魏略》自己否定了——“亮……度东救未能便到……昼夜相攻拒二十余日……救至”,也就是说曹真的救援部队需经二十余日才到达陈仓,故而迅速增援的假说并不成立;二是曹真对郝昭有着十足的信心,认定其凭借手头的千余人就能对抗诸葛亮大军二十余日,这种说法同样也站不住脚——魏明帝在获知诸葛亮军粮不足难以久持的情况下仍令魏之元老宿将张郃率军数万昼夜兼程驰援陈仓,曹真又岂敢如此托大?以此思忖,不难知晓《魏略》所言之虚妄。陈仓的守军绝不会仅仅只有千余人,何况诸葛亮围陈仓之时所面对的并不仅仅是守城的郝昭直系,同时还有曹真派遣的费曜等后援部队(十二月,诸葛亮围陈仓,曹真遣将军费曜等拒之——明帝纪)。
或者有人会说,仅仅依靠上述推理就否定史料未免太过武断,那么,我再深入剖析一下《魏略》关于陈仓一战的诸多虚枉不实之处。
引《三国志明帝纪》裴松之注引《魏略》一段如下:
魏略曰:先是,使将军郝昭筑陈仓城;会亮至,围昭,不能拔。昭字伯道,太原人,为人雄壮,少入军为部曲督,数有战功,为杂号将军,遂镇守河西十余年,民夷畏服。亮围陈仓,使昭乡人靳详于城外遥说之,昭于楼上应详曰:“魏家科法,卿所练也;我之为人,卿所知也。我受国恩多而门户重,卿无可言者,但有必死耳。卿还谢诸葛,便可攻也。”详以昭语告亮,亮又使详重说昭,言人兵不敌,无为空自破灭。昭谓详曰:“前言已定矣。我识卿耳,箭不识也。”详乃去。亮自以有众数万,而昭兵纔千余人,又度东救未能便到,乃进兵攻昭,起云梯冲车以临城。昭于是以火箭逆射其云梯,梯然,梯上人皆烧死。昭又以绳连石磨压其冲车,冲车折。亮乃更为井阑百尺以射城中,以土丸填堑,欲直攀城,昭又于内筑重墙。亮又为地突,欲踊出于城里,昭又于城内穿地横截之。昼夜相攻拒二十余日,亮无计,救至,引退。诏嘉昭善守,赐爵列侯。及还,帝引见慰劳之,顾谓中书令孙资曰:“卿乡里乃有尔曹快人,为将灼如此,朕复何忧乎?”仍欲大用之。会病亡,遗令戒其子凯曰:“吾为将,知将不可为也。吾数发冢,取其木以为攻战具,又知厚葬无益于死者也。汝必敛以时服。且人生有处所耳,死复何在耶?今去本墓远,东西南北,在汝而已。”
用以下篇幅简略比对一下《魏略》和《三国志》关于陈仓之战记载的不同之处。
先看一下这段文字中的“(诸葛亮)起云梯冲车以临城,昭于是以火箭逆射其云梯,梯然,梯上人皆烧死。”
稍加揣摩,便会发现《魏略》的叙述并不符合当时的实际。上文中所言的火箭,当是指箭头处载以易燃物的寻常“火射”,而不是自宋代始见于军用的火药制武器。这里用到一个常识,要引燃一段并未腐朽的干木,需要较高的温度和较长的持续引燃时间,而三国时代所谓的火箭显然达不到这一要求(如有兴趣不妨做这样一个实验:用一米长的纱布卷成一团蘸取适量汽油,点燃后置于表面光滑的木材表面,你会发现直到纱布燃成灰烬木料也不会被引燃。汽油尚且如此,罔论其他——三国时代并不能找到可以与汽油相媲美的燃料)——故而即便诸葛亮真的使用过云梯攻过陈仓,云梯上的蜀军可能会被弓箭射死、被长枪刺死、被擂石砸死、被滚油烫死却不会是被火箭引燃的云梯上的火烧死。魏军若要取得《魏略》所言的“梯上人皆烧死”这一效果,所用的除非是近现代战争中才得以应用的燃烧弹。
再有:亮乃更为井阑百尺以射城中,以土丸填堑,欲直攀城,昭又于内筑重墙。
上文中的所谓井阑,与昆阳之战中王邑所用的云车类似。昆阳之战新朝军队用十余丈高的云车俯射昆阳城,城内军民汲水都需背负门板才得以免于被流矢射中。而魏略称此时诸葛亮围城,亦用百尺井阑雨射陈仓城内,用以配合蜀军“土丸填堑”,以期直达城垣逾墙而入,郝昭既然不能制止蜀军填堑之举,亦可见其守城军卒已为蜀军箭雨所压制。既如此,试问城内魏军又是如何在箭雨纷飞之际筑起一道“重墙”?这里还有一个时效问题:蜀军数万人在无外在干扰的情况下“填堑攀城”,可以瞬时而就,而城内的千余魏军要想在蜀军弓箭的压制下修筑一道贯穿全城的城墙,则需累月之功。换言之,如果诸葛亮真的曾使用如此攻城手段,在蜀军攀墙进入陈仓之后魏军所筑的“重墙”也理当仅仅是刚刚起步,起不到应有的防卫作用。
以上倒不是想说陈仓城内没有二道城墙,我只是认为陈仓即便有“重墙”也应是在此战之前郝昭“葺城”时修好的,不会如《魏略》说的那样是在蜀军的箭雨压制下修筑而成。
不知道读完了已上文字,是不是还有人认定《魏略》不容置疑?
兵力占优势的一方攻不下对方的城池,并不表明攻城方的统帅是个庸才。历史上这样的例子很多,仅举一例。
陈寿在为《诸葛亮传》中为诸葛亮作评时称其“治戎为长,奇谋为短”,反观战国时期的田单则被司马迁誉为“兵以正合,以奇胜。善之者,出奇无穷。奇正还相生,如环之无端。夫始如处女,适人开户;后如脱兔,适不及距,其田单之谓邪!”可正是这位擅用奇谋,以火牛阵大破燕军一举复齐七十余城的田单,曾有过倚全齐之力围攻并无任何外援的齐国故地聊城一年余,徒徒损兵折将而不能克的“战绩”(齐田单攻聊城,岁馀,士卒多死而聊城不下——《史记鲁仲连传》)。此时田单的对手聊城的守将并不是什么智勇双全的名将,其人非但生平事迹已不可考,甚至于连姓氏名字都没有留下——史记记其为“燕将”。凭借这件事是否就可以认定田单的指挥能力及战术素养平平?显然不能。同理,我们也不能仅因为诸葛亮没有攻下陈仓就全盘否定诸葛亮的军事才能。
其实,在冷兵器时代的攻城战中,由于受器械等因素的制约,攻城的一方较之于守城的一方总是处于相对被动的地位——是所谓攻难三倍于守,天下共知。如果被攻方的城防稳固,城内兵力及粮草丰沛,守城者只要能激起部下军士同仇敌忾之心,且不要有低级失误,攻城的一方若于此时选择强攻,势必将处于劣势地位。在强攻城池近身肉搏这一局部战场上,守城方的总是占据着相对的兵力上的优势。换言之,守城方在防御敌军攻城时是以众击寡事半功倍,而攻城方在强突敌方城池时则是以寡敌众事倍功半。
之所以会这样说,是因为即使攻方的兵力再多,能同时投入到攻城作战之中的却总是有限。关于这一点,在王莽时代的昆阳之战中曾经展现的淋漓尽致。
更始元年(公元23年)五月,新朝大司徒王寻、大司马王邑率四十余万大军围困“新市兵”首领王凤、“下江兵”首领王常镇守的昆阳。王寻、王邑倾全部兵力围困昆阳数十重,动用云车、冲车(车装巨木撞击城门)、掘暗道等手段进攻只有八、九千守军的昆阳城。惧于新朝强烈攻势,本无战心的王凤在举城而降却遭到王寻、王邑拒绝的情况下不得已选择坚守城池。王凤、王常皆非宿战名将,昆阳亦非金城汤池,然而王寻、王常动用四十余万人马攻打兵不满万的昆阳近一个月时间仍是未能克获(此事更是直接导致了后来的新朝全军溃败王寻身死诸多变故的发生),由此可知攻城之难。
由是,我认为,陈仓之役并不能用来说明诸葛亮军事才能的低下,正相反,此役恰恰佐证了曹魏对诸葛亮北征甚是忌惮。之所以会这样说,并不是仅仅是因为诸葛亮亮斩了一个王双,据《张郃传》,魏明帝听闻诸葛北征,于洛阳备师三万同时遣驿马数百里加急,征召五子良将中硕果仅存的张郃率军驰赴陈仓。并在为张郃饯行时颇为忧惧的说:“迟将军到,亮得无已得陈仓乎”——此时魏国有大将军曹真坐镇西线,且其对诸葛亮出兵陈仓已经预作防范,设若诸葛亮军谋泛泛,魏明帝断不至于如此忌惮。魏明帝之所以会对诸葛亮北征反应如此激烈,或者是收到了曹真的告急文书——在未遭大败的情况下发书求援,由此可知曹真对诸葛亮北征亦应是颇为畏惧。能够使魏明帝、曹真这样的人产生惊惧之心,又怎么能说诸葛亮不擅长于军事?
据《三国志明帝纪》所载,诸葛亮围陈仓的时间是在公元228年12月(十二月,诸葛亮围陈仓),而《三国志曹真传》对此事件发生时间的记载却是229年春(明年春,亮果围陈仓)。参照《诸葛亮传》及《后主传》,会发现二传所记与《明帝纪》基本吻合(六年冬,亮复出散关,围陈仓,粮尽退),由是可知若非是《曹真传》所记为传抄之误,则诸葛亮围陈仓的时间当在西元228年岁末229年年初。
依《三国志》各传,陈仓之战的大致脉络是这样的:208年,在诸葛亮第一次北伐之后曹真斥令郝昭修葺陈仓,并于此守备。同年十二月,诸葛亮兵临陈仓城下,曹真获知此事后,即刻派遣费曜等人前往陈仓增援,并将军情上报于魏明帝。魏明帝闻讯后,立时在洛阳集结部队,同时令驿马加急,传召本驻防于方城的张郃前往魏都洛阳。张郃在洛阳稍事停留,马上率领魏明帝所征集的三万余军士赶赴陈仓,行至南郑(此南郑非汉中之南郑,祥见杨文理之考证),适逢诸葛亮粮尽退军,魏明帝于是再度下诏,命其还归洛阳。
以上即是《三国志》所记载的陈仓之战的大致流程。
然比照《魏略》各书,此战的个别环节竟有颇大出入。以《三国志明帝纪》裴氏注引《魏略》对陈仓之战的描述为例。《三国志明帝纪》提到曹真派遣费曜等增援陈仓的时间是在诸葛亮围陈仓城之初,费曜等在蜀军准备退军之前已与诸葛军团有所接触(十二月,诸葛亮围陈仓,曹真遣将军费曜等拒之),反观《魏略》此段,则费曜等人是在诸葛亮围陈仓城二十余日,军粮难以为继准备撤军之后方才赶到陈仓(昼夜相攻拒二十余日,亮无计,救至,引退),此说显然与《三国志》所记相违背。二说不可并存,必有一误。我个人的看法是《魏略》的说法靠不住。
且不说作为史籍《三国志》与《魏略》哪个更为权威,单只分析《魏略》此段文字即不难发现其破绽。诸葛亮第一次北伐之际,魏明帝授以曹真“都督关右”之任前往郿城坐镇。诸葛亮兵出陈仓距其第一次北伐已间隔半年有余,此时曹真是否还是屯郿史无明文,但明帝既授于曹真都督关右之任,其所治非郿即是长安当无异议。上述二地距陈仓皆不甚远,且地势相对平坦,利于行军。兼之曹真担当备蜀之重,帐下自是既不缺兵又不乏粮。既闻边衅,部众军粮克日即备,如何会在诸葛亮围陈仓二十余日后方才抵达?军情如火,且依《魏略》所记,曹真先前只派驻陈仓千余守军,其后又在诸葛亮大军围困陈仓孤城之际迟迟不予救援,此虽平庸将帅尚未不忍为,何况料敌机先的曹大将军。以此或可证《魏略》所言的虚谬。
再来看一下《通典》。《通典》称诸葛亮在围陈仓亦曾发兵攻郿(太和二年,诸葛亮以数万人攻陈仓,将军郝昭以千人守二十余日,不拔……攻郿又不克。)
诸葛亮攻郿一事既不见于《魏略》又不见于《三国志》,恰恰相反,从上述二书中皆能找到与《通典》相为矛盾之处。“亮自以有众数万,而昭兵才千余人,又度东救未能便到”(《魏略》)——设若诸葛亮真的曾在攻围陈仓之时分兵攻郿,曹真本人又果真在郿屯驻,其自是无法救援陈仓。除非围郿之军溃败,否则“东救”肯定到不了陈仓,诸葛亮又何须“度东救未能便到”?若曹真此时是在长安,则其所遣救兵也应是先解郿之围,无法越郿直至陈仓。《魏略》又称“(诸葛亮与郝昭)昼夜相攻拒二十余日,亮无计,救至,引退”——若诸葛亮真的曾分兵攻郿,而其围陈仓二十余日后曹真所遗援军又已到达陈仓,显然是围郿之军已然被曹真援军击溃,若曹魏真有此骄人战绩如何连《魏书》《魏略》这等魏系史家编纂的史书中都只字未提?
与本有舛误的《魏略》相较已是如此,且《三国志》中也未曾有关于诸葛亮曾进攻过郿城的记录。由是我认为,攻郿之举,并不曾真正发生过。
综上,我还是更愿意相信《三国志》对陈仓一役流程及细节的描述,而不是《通典》与《魏略》。
最后,辨析一下关于陈仓之战的几个关节之处,就一些关于此次战役可能产生争议的几个问题表述一下我自己的一些看法。
一、是谁派郝昭去的陈仓?
《三国志》对此交代的很清楚,派郝昭去陈仓的是曹真(真以亮惩於祁山,后出必从陈仓,乃使将军郝昭、王生守陈仓,治其城——曹真传)。《魏略》原书则已亡佚,现存于世的只言片语在这个问题上又甚是含混,只称“先是,使郝昭筑陈仓城”,至于是受谁所“使”并未明确指出。虽然如此,只要联系此段下文亦不难发现《魏略》认为郝昭去陈仓是受魏明帝所委派——“先是,使郝昭筑陈仓城……及还,帝引见慰劳之”。《魏略》此语中的“及还”,明显说的是郝昭还归洛阳。郝昭为什么要回洛阳?因为下令让他去陈仓的是魏明帝。所以郝昭才在完成明帝交付其的任务之后,回京都述职。至于《魏略》认为明帝交给郝昭的是什么任务,敬请参见下条。
对于郝昭是受魏明帝所委派,郦道元的《水经注》已有明文:《水经注,渭水》:渭水又东迳陈仓县故城北。魏明帝遣将军太原郝昭筑陈仓城。尽管我个人认为《水经注》的这一说法取之于《魏略》,但毕竟没什么直接证据,所以才做了以上剖析。
二、郝昭去陈仓的目的是什么?
依《三国志》可知,曹真派郝昭去陈仓,目的是于此屯守,缮治城池,以防范诸葛亮自此地北出。
《魏略》所记与此却是大相径庭。《魏略》称:“先是,使郝昭筑陈仓城,会亮至,围昭”。也就是说,《魏略》认为魏明帝此次命令郝昭去陈仓仅仅是为了修筑城池,并非于陈仓驻守,只是在筑城行将完工之际,恰逢诸葛亮率大军来袭,才不得不客串了一把守将的角色——这也是《魏略》为什么说郝昭在诸葛回师以后不继续留屯陈仓而是返回了洛阳的关节所在。那么,这种说法合理吗?我认为,答案是否定的。按:陈仓城古而有之,所谓明修栈道暗渡陈仓。曹操与刘备争夺汉中不利,回师关中之时亦曾命张郃以此城为依托防范刘备乘势北进,故而陈仓城于郝昭驻守时亦应大抵完好。所谓的治城要完成的只是对陈仓旧城做一下修缮,这也是曹真传称“使郝昭、王生守陈仓,治其城”(注意:是守然后治),而非“筑其城”的原因。如此小规模的“治城”工作只须令城内守军实施即可,何必如《魏略》所说专门调派郝昭带领千余魏军去做?且这一做就是半年?
三、诸葛二次北伐之时陈仓城内到底有多少魏军?
《三国志》对陈仓守军的具体数量未作交代,《魏略》却是明确指出陈仓城内的魏军只有千余人。
前文中曾表述过以下观点:曹真既已提前预料到了诸葛亮会自陈仓北出,自然不会仅派驻陈仓千余人。依《魏略》所记,陈仓城内的千余人并非曹真派去的守备部队,而是魏明帝遣往陈仓,专门用作筑城的人员。如此倒是给诸葛亮围城之际陈仓只有千余人提供了一个看似合理的解释——千余人守城虽然不足,筑城或者有余。然而——曹真处大将军之任,受西顾之重,要调动将领部众驻守陈仓本就毋须假手魏明帝,更何况依《魏略》所记,魏明帝遣郝昭往陈仓只是为了筑城,非是为了守城——前亦提及,要修葺一个陈仓,并没有必要调千里之外的郝昭率军前往。
四、“东救”何时到的陈仓?
陈仓若失则曹魏之关中将无险可恃,门户大开,曹真不会不知道陈仓城的重要程度。诸葛亮亲率大军攻围郝昭,则曹真必将倾己之兵力驰援陈仓。前文亦曾提及,曹真在郿也好,在长安也好,距陈仓俱不甚远,故而曹魏“东援”到达陈仓的时间应是在此次战役之初。三国志的记载也确是如此——十二月,诸葛亮围陈仓,曹真遣将军费曜等拒之。反观《魏略》则不然,魏略称曹真“东救”到达陈仓的时间是诸葛围城二十余日之后(“亮……度东救未能便到……昼夜相攻拒二十余日……救至”)。此说又是不合常理,相较而言,显然是《三国志》的记载更为可信。
这段子是由三个短篇接驳而成,所以看上去布局有点问题。但除非推倒重来,不会有什么改观。此次重录,只作了遣词用字等细枝末节的修改,毕竟精力不济,不比当年。