锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍘熸枃錛?nbsp;JavaScript, We Hardly new Ya 錛嶏紞Douglas Crockford銆?/font> JavaScript鏄竴闂ㄥ熀浜庡師鍨嬬殑璇█錛屼絾瀹冨嵈鎷ユ湁涓涓?new 鎿嶄綔絎︿嬌寰楀叾鐪嬭搗鏉ヨ薄涓闂ㄧ粡鍏哥殑闈㈠瀵硅薄璇█銆傞偅鏍蜂篃榪鋒儜浜嗙▼搴忓憳浠紝瀵艱嚧涓浜涙湁闂鐨勭紪紼嬫ā寮忋?/font> 鍏跺疄浣犳案榪滀笉闇瑕佸湪JavaScript浣跨敤 new Object()銆傜敤瀛楅潰閲忕殑褰㈠紡{}鍘誨彇浠e惂銆?br /> 鍚岀悊涓嶇敤浣跨敤 new Number, new String, 鎴栬?new Boolean銆傝繖浜涚殑鐢ㄦ硶鍙細浜х敓鏃犵敤鐨勭被鍨嬪皝瑁呭璞°傚氨鐩存帴浣跨敤綆鍗曠殑瀛楅潰閲忓惂銆?/font> 涓嶈浣跨敤 new Function 鍘誨垱寤哄嚱鏁板璞°傜敤鍑芥暟琛ㄨ揪寮忔洿濂姐傛瘮濡傦細 frames[0].onfocus = new Function(“document.bgColor=’antiquewhite’”) 鏇村ソ鐨勫啓娉曟槸錛?/font> frames[0].onfocus = function () {document.bgColor = ‘antiquewhite’;}; 絎簩縐嶅艦寮忚鑴氭湰緙栬瘧鍣ㄦ洿蹇殑鐪嬪埌鍑芥暟涓諱綋錛屼簬鏄叾涓殑璇硶閿欒涔熶細鏇村揩琚嫻嬪嚭鏉ャ傛湁鏃跺欑▼搴忓憳浣跨敤 new Function 鏄洜涓轟粬浠病鏈夌悊瑙e唴閮ㄥ嚱鏁版槸濡備綍宸ヤ綔鐨勩?/font> selObj.onchange = new Function(“dynamicOptionListObjects["+ 濡傛灉鎴戜滑璁╃敤瀛楃涓插仛鍑芥暟浣擄紝緙栬瘧鍣ㄤ笉鑳界湅鍒板畠浠傚鏋滄垜浠敤瀛楃涓茶〃杈懼紡鍋氬嚱鏁頒綋錛屾垜浠悓鏍蜂篃鐪嬩笉鍒板畠浠傛洿濂界殑鏂瑰紡灝辨槸涓嶈鐩茬洰緙栫▼銆傞氳繃鍒墮犱竴涓繑鍥炲間負鍑芥暟鐨勫嚱鏁拌皟鐢紝鎴戜滑鍙互鏄庣‘鐨勬寜鍊間紶閫掓垜浠兂瑕佺粦瀹氱殑鍊箋傝繖鍏佽鎴戜滑鍦ㄥ驚鐜腑鍒濆鍖栦竴緋誨垪 selObj 瀵硅薄銆?/font> selObj.onchange = function (i) { }; 鐩存帴瀵逛竴涓嚱鏁頒嬌鐢╪ew姘歌繙涓嶆槸涓涓ソ涓繪剰銆傛瘮濡傦紝 new function 瀵規瀯閫犳柊瀵硅薄娌℃湁鎻愪緵浠涔堜紭鍔褲?/font> myObj = new function () { 鏇村ソ鐨勬柟寮忔槸浣跨敤瀵硅薄瀛楅潰閲忥紝瀹冩洿杞誨閥錛屾洿蹇嵎銆?/font> myObj = { 鍋囧鎴戜滑闇瑕佸垱寤虹殑瀵硅薄鍖呭惈鐨勬柟娉曢渶瑕佽闂鏈夊彉閲忔垨鑰呭嚱鏁幫紝鏇村ソ鐨勬柟寮忎粛鐒舵槸閬垮厤浣跨敤new.var foo = new function() { <span> 鏍囩琚敤鏉ョ粍鍚堟枃妗d腑鐨勮鍐呭厓绱犮?/p> NONE 鎻愮ず錛?/span>璇蜂嬌鐢?<span> 鏉ョ粍鍚堣鍐呭厓绱狅紝浠ヤ究閫氳繃鏍峰紡鏉ユ牸寮忓寲瀹冧滑銆?/p> 娉ㄩ噴錛?/span>span 娌℃湁鍥哄畾鐨勬牸寮忚〃鐜般傚綋瀵瑰畠搴旂敤鏍峰紡鏃訛紝瀹冩墠浼氫駭鐢熻瑙変笂鐨勫彉鍖栥?/p> 濡傛灉涓嶅 span 搴旂敤鏍峰紡錛岄偅涔?span 鍏冪礌涓殑鏂囨湰涓庡叾浠栨枃鏈笉浼氫換浣曡瑙変笂鐨勫樊寮傘傚敖綆″姝わ紝涓婁緥涓殑 span 鍏冪礌浠嶇劧涓?p 鍏冪礌澧炲姞浜嗛澶栫殑緇撴瀯銆?/p> 鍙互涓?span 搴旂敤 id 鎴?class 灞炴э紝榪欐牱鏃㈠彲浠ュ鍔犻傚綋鐨勮涔夛紝鍙堜究浜庡 span 搴旂敤鏍峰紡銆?/p> 鍙互瀵瑰悓涓涓?<span> 鍏冪礌搴旂敤 class 鎴?id 灞炴э紝浣嗘槸鏇村父瑙佺殑鎯呭喌鏄彧搴旂敤鍏朵腑涓縐嶃傝繖涓よ呯殑涓昏宸紓鏄紝class 鐢ㄤ簬鍏冪礌緇勶紙綾諱技鐨勫厓绱狅紝鎴栬呭彲浠ョ悊瑙d負鏌愪竴綾誨厓绱狅級錛岃?id 鐢ㄤ簬鏍囪瘑鍗曠嫭鐨勫敮涓鐨勫厓绱犮?/p> 鎻愮ず錛?/span>浜嬪疄涓婏紝鎮ㄤ篃璁稿凡緇忔敞鎰忓埌浜嗭紝W3School 绔欑偣涓婃湁涓浜涙枃鏈殑鏍峰紡涓庡叾浠栨枃鏈槸涓嶅悓鐨勩傛瘮濡?#8220;鎻愮ず”浣跨敤浜嗙矖浣撶殑姍樼孩鑹層傚敖綆″疄鐜拌繖縐嶆晥鏋滅殑鏂規硶闈炲父澶氾紝浣嗘槸鎴戜滑鐨勫仛娉曟槸錛氫嬌鐢?#8220;鎻愮ず”浣跨敤 span 鍏冪礌錛岀劧鍚庡榪欎釜 span 鍏冪礌鐨勭埗鍏冪礌錛屽嵆 p 鍏冪礌搴旂敤 class錛岃繖鏍峰氨鍙互瀵硅繖涓被鐨勫瓙鍏冪礌 span 搴旂敤鐩稿簲鐨勬牱寮忎簡銆?/p> HTML: CSS: 濡傞渶瀹屾暣鐨勬弿榪幫紝璇瘋闂?a style="text-decoration: underline; color: #900b09; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">鏍囧噯灞炴?/a>銆?/p> 濡傞渶瀹屾暣鐨勬弿榪幫紝璇瘋闂?a style="text-decoration: underline; color: #900b09; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; ">浜嬩歡灞炴?/a>銆?/p> 鍦–涓紝瀵﹂殯涓婃槸浣跨敤Stream I/O鐨勬柟寮忎締瀛樺彇璩囨枡銆備篃灝辨槸瑾紝鐣舵墦闁嬩竴鍊嬫獢妗堝緦錛?OS閭i倞鏈冨皣涓閮ㄥ垎鐨勮硣鏂欏厛璁璧蜂締鍦ㄤ竴鍊嬫毇瀛樼殑Buffer瑁★紝鐒跺緦FILE閫欏媝ointer灝辨渻鍘繪寚鍚戦欏媌uffer錛?姣忚畝鍙栦竴鍊嬪瓧鍏冩檪錛屽畠灝辨渻寰鍓嶇Щ鍕曚竴鍊嬨傚悓妯g殑錛岀暥鎴戝戝湪瀵叆鐨勬檪鍊欙紝鐣舵垜鍊戝畬鎴愬儚鏄痜printf鏅傦紝 瀹冧篃鏄厛瀵叆閫欏媌uffer涓紝鐩村埌閫欏媌uffer琚玣lush鎴栨槸瀵嚭鍒癲evice涓紝鎵嶆渻鐪熸鐨勫仛鏀硅畩銆?/p> 閫欏嫉鍦栫殑宸﹂倞灝辨槸device錛涘彸閭婂氨鏄痓uffer銆?br>
--JavaScript 鐨?new錛?濂戒箙涓嶈鍟?/h2>
鍚岀悊錛屼笉瑕佷嬌鐢?new Array() 錛岃屼唬涔嬩互瀛楅潰閲廩]銆侸avaScript涓殑鏁扮粍騫朵笉璞ava涓殑鏁扮粍閭f牱宸ヤ綔鐨勶紝浣跨敤綾諱技Java鐨勮娉曞彧浼氳浣犵硦娑傘?/font>
dol.index+"].change(this)”);
return function () {
dynamicOptionListObjects[i].change(this);
}(dol.index);
this.type = ‘core’;
};
type: ‘core’
};
function processMessages(message) {
alert(“Message: ” + message.content);
}
this.init = function() {
subscribe(“/mytopic”, this, processMessages);
}
}
閫氳繃浣跨敤 new 鍘昏皟鐢ㄥ嚱鏁幫紝瀵硅薄浼氭寔鏈変竴涓棤鎰忎箟鐨勫師鍨嬪璞°傝繖鍙細嫻垂鍐呭瓨鑰屼笉浼氬甫鏉ヤ換浣曞ソ澶勩傚鏋滄垜浠笉浣跨敤new錛屾垜浠氨涓嶇敤鍦ㄥ璞¢摼緇存姢涓涓棤鐢ㄧ殑prototype瀵硅薄銆傛墍浠ユ垜浠彲浠ョ敤錛堬級鏉ユ紜殑璋冪敤宸ュ巶鍑芥暟銆?/font>var foo = function () {
function processMessages(message) {
alert(“Message: ” + message.content);
}
return {
init: function () {
subscribe(“/mytopic”, this, processMessages);
}
};
}();
鎵浠ュ師鍒欏緢綆鍗曪細 鍞竴搴旇瑕佺敤鍒皀ew鎿嶄綔絎︾殑鍦版柟灝辨槸璋冪敤涓涓彜鑰佺殑鏋勯犲櫒鍑芥暟鐨勬椂鍊欍傚綋璋冪敤涓涓瀯閫犲櫒鍑芥暟鐨勬椂鍊欙紝鏄己鍒惰姹備嬌鐢╪ew鐨勩?/font>鏈夋椂鍊欏彲浠ユ潵new涓涓? 鏈夌殑鏃跺欒繕鏄笉瑕佷簡鍚с?/font>
]]>
]]>
--HTML <span> 鏍囩
瀹氫箟鍜岀敤娉?/h2>
HTML 涓?XHTML 涔嬮棿鐨勫樊寮?/h2>
鎻愮ず鍜屾敞閲婏細
渚嬪瓙
<p>
<span>some text.</span>some other text.</p>渚嬪瓙瑙i噴
<p class="tip"><span>鎻愮ず錛?lt;/span>... ... ...</p>
p.tip span {
font-weight:bold;
color:#ff9955;
}
鏍囧噯灞炴?/h2>
id, class, title, style, dir, lang, xml:lang
浜嬩歡灞炴?/h2>
onclick, ondblclick, onmousedown, onmouseup, onmouseover,
onmousemove, onmouseout, onkeypress, onkeydown, onkeyup
]]>
var add = function (a,b){
return a + b;
}
///////////// Invocation
// The Method Invocation Pattern
var myObject = {
value: 0,
increment: function (inc) {
this.value += typeof inc === 'number' ? inc : 1;
}
};
myObject.increment();
document.writeln(myObject.value);
myObject.increment(2);
document.writeln(myObject.value);
// The Function Invocation Pattern
var sum = add(3, 4);
myObject.double = function(){
var that = this; // Workaround
var helper = function(){
that.value = add(that.value, that.value)
};
helper();
};
// Invoke double as a method.
myObject.double();
document.writeln(myObject.value);
// The Constructor Invocation Pattern
var Quo = function(string){
this.status = string;
};
Quo.prototype.get_status = function(){
return this.status;
};
var myQuo = new Quo("confused");
document.writeln(myQuo.get_status());
// The Apply Invocation Pattern
var array = [3, 4];
var sum = add.apply(null, array);
var statusObject = {
status: 'A-OK'
};
var status = Quo.prototype.get_status.apply(statusObject);
//////////////// Arguments
var sum = function(){
var i, sum = 0;
for(i = 0; i < arguments.length; i += 1){
sum += arguments[i];
}
return sum;
};
document.writeln(sum(4, 8, 15, 16, 23, 42));
////////////////// 4.6 Exceptions
var add = function(a, b){
if(typeof a !== 'number' || typeof b !== 'number'){
throw{
name: 'TypeError',
message: 'add needs numbers'
}
}
return a + b;
}
var try_it = function(){
try{
add("seven");
}catch(e){
document.writeln(e.name + ': ' + e.message);
}
}
try_it();
/////////////// 4.7 Argumenting Types
// TODO
Function.prototype.method = function(name, func){
this.prototype[name] = func;
return this;
};
Number.method('integer', function(){
return Math[this < 0 ? 'ceil' : 'floor'](this);
});
document.writeln((-10 / 3).integer());
String.method('trim', function(){
return this.replace(/^\s+|\s+$/g, '');
});
document.writeln('"' + " neat ".trim() + '"');
Function.prototype.method = function(name, func){
if(!this.prototype[name]){
this.prototype[name] = func;
}
};
/////////////////// 4.8 Recursion
// hanoi闂錛岄掑綊姹傝В
var hanoi = function(disc, src, aux, dst){
if(disc > 0){
hanoi(disc - 1, src, dst, aux);
document.writeln('Move disc ' + disc + ' from ' + src + ' to ' + dst);
hanoi(disc - 1, aux, src, dst);
}
}
hanoi(3, 'Src', 'Aux', 'Dst');
// 閫掑綊澶勭悊嫻忚鍣ㄧ鐨勬枃妗e璞℃ā鍨?/span>
// TODO wark_the_DOM 鍜?nbsp;walk 浠涔堝叧緋伙紵
var wark_the_DOM = function walk(node, func){
func(node);
node = node.firstChild;
while(node){
walk(node, func);
node = node.nextSibling;
}
};
var getElementsByAttribute = function(att, value){
var results = [];
wark_the_DOM(document.body, function(node){
var actual = node.nodeType === 1 && node.getAttribute(att);
if(typeof actual === 'string' && // node灞炴ф槸string,node鍊肩瓑浜庝紶鍏ョ殑value錛屾垨鑰卾alue涓嶆槸string
(actual === value || typeof value !== 'string')){
results.push(node);
}
});
};
// 灝鵑掑綊姹傞樁涔樸俲s涓嶈兘鍋氬熬閫掑綊浼樺寲銆?/span>
var factorial = function factorial(i, a){
a = a || 1;
if(i < 2){
return a;
}
return factorial(i - 1, a * i);
};
document.writeln(factorial(4));
//////////////// Scope
var foo = function(){
var a = 3, b = 5;
var bar = function(){
var b = 7, c = 11;
a += b + c;
};
bar();
};
foo();
////////////// Closure
// 閫氳繃璋冪敤鍑芥暟鐨勫艦寮忓垵濮嬪寲myObject
// 璇ュ嚱鏁拌繑鍥炰竴涓寘鍚湁2涓柟娉曠殑瀵硅薄錛屽茍涓旇繖浜涙柟娉曚韓鏈夌戶緇闂畍alue鍙橀噺鐨勭壒鏉?/span>
var myObject = function(){
var value = 0;
return {
increment: function(inc){
value += typeof inc === 'number' ? inc : 1;
},
getVaule: function(){
return value;
}
}
}(); // 绔嬪埢鎵ц
// 鍒涘緩涓涓悕涓簈uo鐨勬瀯閫犲嚱鏁? 瀹冩瀯閫犲嚭甯︽湁get_status鏂規硶鍜宻tatus縐佹湁灞炴х殑涓涓璞°?/span>
var quo = function(status){
return {
get_status: function(){
return status;
}
};
};
var myQuo = quo("amazed");
document.writeln(myQuo.get_status());
// 瀹氫箟涓涓嚱鏁幫紝瀹冭緗竴涓狣OM鑺傜偣涓洪粍鑹詫紝鐒跺悗鎶婂畠鍙樻垚鐧借壊
var fade = function(node){
var level = 1;
var step = function(){
var hex = level.toString(16);
node.style.backgroundColor = '#FFFF' + hex + hex; // TODO 棰滆壊緙栫爜
if(level < 15){
level += 1;
setTimeout(step, 100); // setTimeout()鏂規硶鐢ㄤ簬鍦ㄦ寚瀹氱殑姣鏁板悗璋冪敤鍑芥暟鎴栬綆楄〃杈懼紡
}
};
setTimeout(step, 100);
};
fade(document.body);
// 緇欎竴涓暟緇勪腑鐨勮妭鐐硅緗簨浠跺鐞嗙▼搴?/span>
var add_the_handles = function(nodes){
var i;
for(i = 0; i < nodes.length; i+=1){
node[i].onclick = function(i){
return function(e){
alert(e);
};
}(i);
}
};
add_the_handles(document.body);
///////////// Module
// 瀵繪壘瀛楃涓蹭腑鐨凥TML瀛楃錛屽茍鏇挎崲涓哄畠浠搴旂殑瀛楃
String.method('deentityify',function(){
// The entity table. Itmaps entity names to characters.
var entity= {
quot: '"',
lt: '<',
gt: '>'
};
// Return the deentityify method.
return function(){
return this.replace(/&([^&;]+);/g, // TODO 姝e垯
function(a, b){
var r = entity[b];
return typeof r === 'string' ? r : a;
})
};
}());
document.writeln('<">'.deentityify());
// 榪斿洖涓涓敤鏉ヤ駭鐢熷敮涓瀛楃涓茬殑瀵硅薄
// 鍞竴瀛楃涓茬敱涓ら儴鍒嗙粍鎴愶細鍓嶇紑+搴忓垪鍙?br />// 璇ュ璞″寘鎷竴涓緗墠緙鐨勬柟娉曪紝涓涓緗簭鍒楀彿鐨勬柟娉曪紝鍜屼竴涓駭鐢熷敮涓瀛楃涓茬殑gensym鏂規硶
var serial_maker = function(){
var prefix = '';
var seq = 0;
return {
set_prefix: function(p){
prefix = String(p);
},
set_seq: function(s){
seq = s;
},
gensym: function(){
var result = prefix + seq;
seq += 1;
return result;
}
};
};
var seqer = serial_maker();
seqer.set_prefix('Q');
seqer.set_seq(1000);
var unique = seqer.gensym();
document.writeln(unique);
/////////////// Curry
Function.method('curry', function(){
var slice = Array.prototype.slice;
args = slice.apply(arguments);
that = this;
return function(){
return that.apply(null, args.concat(slice.apply(arguments)));
};
});
var add1 = add.curry(1);
document.writeln(add1(6));
////////////// Memoization
// Fibonacci, beform memoization
var fibonacci = function(n){
return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
};
for(var i = 0; i <= 10; i += 1){
document.writeln('//' + i + ': ' + fibonacci(i));
}
// after memoization
var fibonacci2 = function(){
var memo = [0, 1];
var fib = function(n){
var result = memo[n];
if(typeof result !== 'number'){
result = fib(n - 1) + fib(n - 2);
memo[n] = result;
}
return result;
};
return fib;
}();
for(var i = 0; i <= 10; i += 1){
document.writeln('//' + i + ': ' + fibonacci2(i));
}
var memoizer = function(memo, fundamental){
var shell = function(n){
var result = memo[n];
if(typeof result !== 'number'){
result = fundamental(shell, n);
memo[n] = result;
}
return result;
};
return shell;
};
var fabonacci3 = memoizer([0,1], function(shell, n){
return shell(n - 1) + shell(n - 2);
});
var factorial2 = memoizer([1,1], function(shell, n){
return n * shell(n - 1);
});
ch05 緇ф壙
5.1 浼被
鍚愪笅妲姐?the Function constructor that produces the function object runs some code like this:"琚瘧鎴愪簡“Function鏋勯犲櫒浜х敓鐨勫嚱鏁板璞′細榪愯綾諱技榪欐牱鐨勪竴浜涗唬鐮侊細”銆備富璇兘閿欎簡銆傝繖鏈功閲岀殑閿欒紜疄姣旇緝澶氥?br />
]]>
瑙e喅:
if not counters: return result_list
ps,濂戒箙娌℃潵,CuteEditor閮芥敮鎸乧hrome浜嗗晩:-)
]]>
int main(int argc, char **argv)
{
FILE *fin, *fout;
int i;
int c;
if((fout = fopen("tmp","w")) == NULL){
printf("create output file error.\n");
return 1;
}
for(i = 1; i < argc; i++){
fputs(argv[i], fout);
fputs("\n", fout);
}
for(i = 1; i < argc; i++){
if((fin = fopen(argv[i],"r")) == NULL){
printf("file not exist - %s\n", argv[i]);
return 1;
}
fputs("\n\n#############\n", fout);
fputs(argv[i], fout);
fputs("\n#############\n", fout);
while((c = fgetc(fin)) != EOF )
fputc(c, fout);
fclose(fin);
}
fclose(fout);
return 0;
}
]]>File I/O
The FILE type
Example: FILE *myfile;

Associate the variable with a file
"r" open for reading; 鍋囧妾旀涓嶅瓨鍦紝鍓囧け鏁椼?/td> "w" open or create for writing; 鍋囧妾旀瀛樺湪錛屽叾鐝懼瓨鐨勫収瀹規渻琚钃嬨?/td> "a" open or create for writng; 鐪媤鐨勪笉鍚屽湪鏂鹼紝瀹冩渻鎺ヨ憲鐝懼瓨鐨勫収瀹圭辜綰屽仛涓嬪幓 "r+" open for reading and writing; 妾旀涓瀹氳瀛樺湪 "w+" open or create for reading and writing; 妾旀涓嶅瓨鍦ㄥ氨闁嬫柊妾旀錛屽瓨鍦ㄥ氨瑕嗗 "a+" open or create for reading and writing; 涓嶅悓铏曞悓涓婇潰a鍜寃鐨勫樊鍒?/td> FILE *fopen(char *name, char *mode) Example: FILE *myfile;
myfile = fopen("input.txt", "r");
Testing for EOF
Syntax: int feof( FILE *stream );
Example:
if( feof( myfile ) )Writing / Reading by single character
Syntax: int fgetc( FILE *stream );
int fputc( int c, FILE *stream );
Example: FILE *myfile, *myfile2;
int c;
myfile = fopen("in", "r");>
myfile2 = fopen("out", "w");
while( (c=fgetc(myfile)) != EOF)
fputc(c, myfile2);Writing / Reading by line of text
Syntax: char *fgets(char *str, int size, FILE *stream);
int fputs(const char *str, FILE *stream);
Example: FILE *myfile, *myfile2;
char tmp[80];
myfile = fopen("in", "r");>
myfile2 = fopen("out", "w");
while( (fgets(tmp, 80, myfile)) != NULL)
fputs(tmp, myfile2);fprintf() and fscanf()
Examples: fprintf(outputfile, "My age is %d\n", myAge);
fscanf(inputfile, "%f", &floatVariable);
Close the files
Syntax: int fclose( FILE *stream );
A sample program
鍋囧浣犲戦倓鏄笉鏈冪敤鐨勮┍ 錛屽彲浠ュ鐢?鍙冭?涓嬮潰鐨勭▼寮忋?table class="ebox1" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: black; background-position: initial initial; background-repeat: initial initial; ">#include
]]>
A:
http://hi.baidu.com/%D4%BC%D0%DE%D1%C7ing/blog/item/d5f86a0f598b47c27acbe138.html
static void cut_mode(void)
濡傛灉鍐欐垚static void cut_mode()
灝變細鏈夎鍛奻unction declaration isn't a prototype
int getopt(int argc, char * const argv[],
const char *optstring);
extern char *optarg;
extern int optind, opterr, optopt;
#include <getopt.h>
int getopt_long(int argc, char * const argv[],
const char *optstring,
const struct option *longopts, int *longindex);
--ex
23 struct option longopts[] = {
24 {"icmp", no_argument, NULL, 'i'},
25 {"help", no_argument, NULL, 'h'},
26 {"drop", required_argument, NULL, 'd'},
27 {0,0,0,0}
28 };
51 while((c = getopt_long(argc, argv, "hid:", longopts, NULL))!=-1){
52 switch(c){
53 case 'i':{
54 own->icmp_off = 1;
55 break;
56 }
57 case 'd':{
58 own->drop_ip = inet_addr(optarg);
59 break;
60 }
61 case 'h':{
62 print_help(argv[0]);
63 return -1;
64 }
65 default:
66 break;
67 }
--
浣滅敤錛?br>瑙f瀽杈撳叆鐨勫弬鏁般?/p>
鍙傛暟錛?br>argc鍜宎rgv鏄紶鍏ain鐨勫弬鏁頒釜鏁?鍜?鍙傛暟鍒楄〃銆?br>"hid:"鏄?h -i -d 榪欐牱鐨勯夐」錛沝鍚庢湁鍐掑彿錛岃〃紺?d閫夐」鏈夊弬鏁拌窡鐫銆?br>longopts鏄痵truct option *錛屽垪鍑?h -i -d瀵瑰簲鐨勯暱閫夐」鏍煎紡--help --icmp --drop
鐩稿叧澶栭儴鍙橀噺錛?br>extern char *optarg; - 褰撳墠閫夐」鐨勫弬鏁板瓧涓?/p>
pass璇彞浠涔堜篃涓嶅仛錛屼竴鑸綔涓哄崰浣嶇鎴栬呭垱寤哄崰浣嶇▼搴忥紝pass璇彞涓嶄細鎵ц浠諱綍鎿嶄綔錛屾瘮濡傦細
while False:
pass
pass閫氬父鐢ㄦ潵鍒涘緩涓涓渶綆鍗曠殑綾伙細
class MyEmptyClass:
pass
pass鍦ㄨ蔣浠惰璁¢樁孌典篃緇忓父鐢ㄦ潵浣滀負TODO錛屾彁閱掑疄鐜扮浉搴旂殑瀹炵幇錛屾瘮濡傦細
def initlog(*args):
pass #please implement this
浣跨敤print杈撳嚭鍚勫瀷鐨?/p>
strHello = 'Hello Python' print strHello #杈撳嚭緇撴灉錛欻ello Python #鐩存帴鍑哄瓧絎︿覆
python print涔熸敮鎸佸弬鏁版牸寮忓寲錛屼笌C璦鐨刾rintf浼鹼紝
strHello = "the length of (%s) is %d" %('Hello World',len('Hello World')) print strHello #杈撳嚭鏋滐細the length of (Hello World) is 11
nHex = 0x20 #%x --- hex 鍗佸叚榪涘埗 #%d --- dec 鍗佽繘鍒?/span> #%d --- oct 鍏繘鍒?/span> print "nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex) #杈撳嚭緇撴灉錛歯Hex = 20,nDec = 32,nOct = 40 #浣跨敤鏁存暟鐨勫悇涓埗鎵撳嵃鍚屼竴涓暟
import math #default print "PI = %f" % math.pi #width = 10,precise = 3,align = left print "PI = %10.3f" % math.pi #width = 10,precise = 3,align = rigth print "PI = %-10.3f" % math.pi #鍓嶉潰濉厖瀛楃 print "PI = %06d" % int(math.pi) #杈撳嚭緇撴灉 #PI = 3.141593 #PI = 3.142 #PI = 3.142 #PI = 000003 #嫻偣鏁扮殑鏍煎紡鍖栵紝綺懼害銆佸害鍜?/span>
#precise = 3 print "%.3s " % ("jcodeer") #precise = 4 print "%.*s" % (4,"jcodeer") #width = 10,precise = 3 print "%10.3s" % ("jcodeer") #杈撳嚭緇撴灉錛?/span> #jco #jcod # jco #鍚屼簬瀛楃涓蹭篃瀛樺湪綺懼害銆佸害鍜屻?/span>
l = [1,2,3,4,'jcodeer'] print l #杈撳嚭緇撴灉錛歔1, 2, 3, 4, 'jcodeer'] #浜巐ist鐩存帴鎵撳嵃鍗沖彲 '''6.鍑哄瓧鍏?dictionary)''' d = {1:'A',2:'B',3:'C',4:'D'} print d #杈撳嚭緇撴灉錛歿1: 'A', 2: 'B', 3: 'C', 4: 'D'} #鍚宲ython涔熸槸鏀寔dictionary鍑虹殑
print 浼氳嚜鍔ㄥ湪琛屾湯鍔犱笂鍥炶濺,濡傛灉涓嶉渶鍥炶濺錛屽彧闇鍦╬rint璇彞鐨勭粨灝炬坊鍔犱竴涓楀彿”,“錛屽氨鍙互鏀瑰彉瀹冪殑琛屼負銆?/p>
for i in range(0,5): print i,
鎴栫洿鎺ヤ嬌鐢ㄤ笅闈㈢殑鍑芥暟榪涜杈撳嚭錛?/p>
sys.stdout.write("杈撳嚭鐨勫瓧涓?)
# -*- coding:utf-8 -*-
# file : shift_domain.py
#
import re
import sys
def DealWithDomain(s):
r = re.compile(r'''
(?<=class="w2">) # 鍖歸厤class="w2">
\S* # 鍖歸厤domain
(?=</LI>)
''', re.X|re.I) # 蹇界暐娉ㄩ噴錛屽拷鐣ュぇ灝忓啓
return r.findall(s)
if len(sys.argv) == 1:
sour = raw_input('璇瘋緭鍏ヨ澶勭悊鐨勬枃浠惰礬寰?/span>')
else:
sour = sys.argv[1]
file = open(sour)
s = file.readlines()
file.close()
for line in s:
url = DealWithDomain(line)
if len(url) == 1:
print url[0]
# -*- coding:utf-8 -*-
#
import webbrowser
a = 53681
b = 53689
for eventid in range(a,b):
tmp = "http://******/detail/" + str(eventid) + "/"
webbrowser.open(tmp)
鏈嶅姟绔殑杈撳嚭緙撳啿鍖?nbsp;
緙虹渷鎯呭喌涓?鏈嶅姟绔杈撳嚭鍒板鎴風鐨勫唴瀹?涓嶇洿鎺ュ啓鍒板鎴風,鑰屾槸鍏堝啓鍒頒竴涓緭鍑虹紦鍐插尯涓?鍙湁鍦ㄤ笅闈笁涓儏鍐典笅錛屾墠浼氭妸璇ョ紦鍐插尯鐨勫唴瀹硅緭鍑哄埌瀹㈡埛绔笂錛?nbsp;

1)璇sp緗戦〉宸插畬鎴愪俊鎭殑杈撳嚭 
2)杈撳嚭緙撳啿鍖哄凡婊?nbsp;
3)jsp涓皟鐢ㄤ簡out.flush()鎴杛esponse.flushbuffer() 
杈撳嚭緙撳啿鍖虹殑澶у皬鍙互鐢? 鎴杛esponse.setbuffersize()璁劇疆,濡備笅錛?nbsp;
1)璁劇疆杈撳嚭緙撳啿鍖虹殑澶у皬涓?kb銆?nbsp;鎴杛esponse.setbuffersize(1); 
2)璁劇疆杈撳嚭緙撳啿鍖虹殑澶у皬涓?錛屽嵆涓嶇紦鍐層?nbsp;鎴杛esponse.setbuffersize(0); 
鐢╮esponse.getbuffersize()鎴杘ut.getbuffersize()鍙彇鐨勮緭鍑虹紦鍐插尯鐨勫ぇ灝?鍗曚綅涓哄瓧鑺? 鐢╮esponse.iscommitted()鍙鏌ョ湅鏈嶅姟绔槸鍚﹀凡灝嗘暟鎹緭鍑哄埌瀹㈡埛绔? 濡傛灉榪斿洖鍊兼槸true鍒欏凡灝嗘暟鎹緭鍑哄埌瀹㈡埛绔?鏄痜alse鍒欒繕娌℃湁. 
鍔熻兘鍙鳳細00H
鍔熻兘錛氳緗樉紺烘ā寮?br>
鍏ュ彛鍙傛暟錛欰H=00H
AL=鏄劇ず妯″紡
鏄劇ず妯″紡鍒楄〃:
鏄劇ず妯″紡 鏄劇ず妯″紡灞炴?br>
00H 40×25 16鑹?鏂囨湰
01H 40×25 16鑹?鏂囨湰
02H 80×25 16鑹?鏂囨湰
04H 320×200 4鑹?br>
05H 320×200 4鑹?br>
06H 640×200 2鑹?br>
07H 80×25 2鑹?鏂囨湰
08H 160×200 16鑹?br>
09H 320×200 16鑹?br>
0AH 640×200 4鑹?br>
0BH 淇濈暀
0CH 淇濈暀
0DH 320×200 16鑹?br>
0EH 640×200 16鑹?br>
0FH 640×350 2鑹詫紙鍗曡壊錛?br>
10H 640×350 4鑹?br>
11H 640×480 2鑹?br>
12H 640×480 16鑹?br>
13H 320×200 256鑹?br>
鍔熻兘鍙?1H
鍔熻兘錛氳緗厜鏍囧艦鐘?br>
鍏ュ彛鍙傛暟錛?AH錛?1H
CH浣庡洓浣嶏紳鍏夋爣鐨勮搗濮嬭
CL浣庡洓浣嶏紳鍏夋爣鐨勭粓姝㈣
鍑哄彛鍙傛暟錛?鏃?br>
鍔熻兘鍙鳳細02H
鍔熻兘錛氱敤鏂囨湰鍧愭爣涓嬭緗厜鏍囦綅緗?br>
鍏ュ彛鍙傛暟錛?AH錛?2H
BH錛濇樉紺洪〉鐮?br>
DH錛濊(Y鍧愭爣)
DL錛濆垪(X鍧愭爣)
鍑哄彛鍙傛暟錛?鏃?br>
鍔熻兘鍙鳳細03H
鍔熻兘錛氬湪鏂囨湰鍧愭爣涓嬶紝璇誨彇鍏夋爣鍚勭淇℃伅
鍏ュ彛鍙傛暟錛欰H錛?3H
BH錛濇樉紺洪〉鐮?br>
鍑哄彛鍙傛暟錛欳H錛濆厜鏍囩殑璧峰琛?br>
CL錛濆厜鏍囩殑緇堟琛?br>
DH錛濊(Y鍧愭爣)
DL錛濆垪(X鍧愭爣)
鍔熻兘鍙鳳細04H
鍔熻兘錛氳幏鍙栧綋鍓嶇姸鎬佸拰鍏夌瑪浣嶇疆
鍏ュ彛鍙傛暟錛欰H錛?4H
鍑哄彛鍙傛暟錛欰H錛?0h鈥斿厜絎旀湭鎸変笅/鏈Е鍙戯紝01h鈥斿厜絎斿凡鎸変笅/宸茶Е鍙?br>
BX錛濊薄绱犲垪(鍥懼艦X鍧愭爣)
CH錛濊薄绱犺(鍥懼艦Y鍧愭爣錛屾樉紺烘ā寮忥細04H~06H)
CX錛濊薄绱犺(鍥懼艦Y鍧愭爣錛屾樉紺烘ā寮忥細0DH~10H)
DH錛濆瓧絎﹁(鏂囨湰Y鍧愭爣)
DL錛濆瓧絎﹀垪(鏂囨湰X鍧愭爣)
鍔熻兘鍙鳳細05H
鍔熻兘錛氳緗樉紺洪〉錛屽嵆閫夋嫨媧誨姩鐨勬樉紺洪〉
鍏ュ彛鍙傛暟錛欰H錛?5H
AL錛濇樉紺洪〉
瀵逛簬CGA銆丒GA銆丮CGA鍜孷GA錛屽叾鏄劇ず欏靛涓嬭〃鎵鍒楋細
妯″紡 欏墊暟 鏄劇ず鍣ㄧ被鍨?br>
00H 01H 0~7 CGA銆丒GA銆丮CGA銆乂GA
02H 03H 0~3 CGA
02H 03H 0~7 EGA銆丮CGA銆乂GA
07H 0~7 EGA銆乂GA
0DH 0~7 EGA銆乂GA
0EH 0~3 EGA銆乂GA
0FH 0~1 EGA銆乂GA
10H 0~1 EGA銆乂GA
鍔熻兘鍙鳳細06H鍜?7H
鍔熻兘錛氬垵濮嬪寲灞忓箷鎴栨粴灞?br>
鍏ュ彛鍙傛暟錛欰H錛?6H鈥斿悜涓婃粴灞忥紝07H鈥斿悜涓嬫粴灞?br>
AL錛濇粴鍔ㄨ鏁?0鈥旀竻紿楀彛)
BH錛濈┖鐧藉尯鍩熺殑緙虹渷灞炴?br>
(CH銆丆L)錛濈獥鍙g殑宸︿笂瑙掍綅緗?Y鍧愭爣錛孹鍧愭爣)
(DH銆丏L)錛濈獥鍙g殑鍙充笅瑙掍綅緗?Y鍧愭爣錛孹鍧愭爣)
鍑哄彛鍙傛暟錛?鏃?br>
鍔熻兘鍙鳳細08H
鍔熻兘錛氳鍏夋爣澶勭殑瀛楃鍙婂叾灞炴?br>
鍏ュ彛鍙傛暟錛欰H錛?8H
BH錛濇樉紺洪〉鐮?br>
鍑哄彛鍙傛暟錛欰H錛濆睘鎬?br>
AL錛濆瓧絎?br>
鍔熻兘鍙鳳細09H
鍔熻兘錛氬湪褰撳墠鍏夋爣澶勬寜鎸囧畾灞炴ф樉紺哄瓧絎?br>
鍏ュ彛鍙傛暟錛欰H錛?9H
AL錛濆瓧絎?br>
BH錛濇樉紺洪〉鐮?br>
BL錛濆睘鎬?鏂囨湰妯″紡)鎴栭鑹?鍥懼艦妯″紡)
CX錛濋噸澶嶈緭鍑哄瓧絎︾殑嬈℃暟
鍑哄彛鍙傛暟錛氭棤
鍔熻兘鍙鳳細0AH
鍔熻兘錛氬湪褰撳墠鍏夋爣澶勬寜鍘熸湁灞炴ф樉紺哄瓧絎?br>
鍏ュ彛鍙傛暟錛欰H錛?AH
AL錛濆瓧絎?br>
BH錛濇樉紺洪〉鐮?br>
BL錛濋鑹?鍥懼艦妯″紡錛屼粎閫傜敤浜嶱Cjr)
CX錛濋噸澶嶈緭鍑哄瓧絎︾殑嬈℃暟
鍑哄彛鍙傛暟錛氭棤
鍔熻兘鍙鳳細0BH
鍔熻兘錛氳緗皟鑹叉澘銆佽儗鏅壊鎴栬竟妗?br>
鍏ュ彛鍙傛暟錛欰H錛?BH
璁劇疆棰滆壊錛欱H錛?0H錛孊L錛濋鑹?br>
閫夋嫨璋冭壊鏉匡細BH錛?1H錛孊L錛濊皟鑹叉澘(320×200銆?縐嶉鑹茬殑鍥懼艦妯″紡)
鍑哄彛鍙傛暟錛?鏃?br>
鍔熻兘鍙鳳細0CH
鍔熻兘錛氬啓鍥懼艦璞$礌
鍏ュ彛鍙傛暟錛欰H錛?CH
AL錛濊薄绱犲?br>
BH錛濋〉鐮?br>
(CX銆丏X)錛濆浘褰㈠潗鏍囧垪(X)銆佽(Y)
鍑哄彛鍙傛暟錛氭棤
鍔熻兘鍙鳳細0DH
鍔熻兘鎻忚堪錛氳鍥懼艦璞$礌
鍏ュ彛鍙傛暟錛欰H錛?DH
BH錛濋〉鐮?br>
(CX銆丏X)錛濆浘褰㈠潗鏍囧垪(X)銆佽(Y)
鍑哄彛鍙傛暟錛欰L錛濊薄绱犲?br>
鍔熻兘鍙鳳細0EH
鍔熻兘錛氬湪Teletype妯″紡涓嬫樉紺哄瓧絎?br>
鍏ュ彛鍙傛暟錛欰H錛?EH
AL錛濆瓧絎?br>
BH錛濋〉鐮?br>
BL錛濆墠鏅壊(鍥懼艦妯″紡)
鍑哄彛鍙傛暟錛?鏃?br>
鍔熻兘鍙鳳細0FH
鍔熻兘錛氳鍙栨樉紺哄櫒妯″紡
鍏ュ彛鍙傛暟錛欰H錛?FH
鍑哄彛鍙傛暟錛欰H錛濆睆騫曞瓧絎︾殑鍒楁暟
AL錛濇樉紺烘ā寮?鍙傝鍔熻兘00H涓殑璇存槑)
BH錛濋〉鐮?br>
鍔熻兘鍙鳳細10H
鍔熻兘鎻忚堪錛氶鑹蹭腑鏂傚叾瀛愬姛鑳借鏄庡涓嬶細
鍔熻兘鍙楓瀛愬姛鑳藉悕縐?nbsp; 鍔熻兘鍙楓瀛愬姛鑳藉悕縐?br>
00H 璁劇疆璋冭壊鏉垮瘎瀛樺櫒 01H 璁劇疆杈規棰滆壊
02H 璁劇疆璋冭壊鏉垮拰杈規 03H 瑙﹀彂闂儊/浜樉浣?br>
07H 璇誨彇璋冭壊鏉垮瘎瀛樺櫒 08H 璇誨彇杈規棰滆壊
09H 璇誨彇璋冭壊鏉垮拰杈規 10H 璁劇疆棰滆壊瀵勫瓨鍣?br>
12H 璁劇疆棰滆壊瀵勫瓨鍣ㄥ潡 13H 璁劇疆棰滆壊欏電姸鎬?br>
15H 璇誨彇棰滆壊瀵勫瓨鍣?nbsp; 17H 璇誨彇棰滆壊瀵勫瓨鍣ㄥ潡
1AH 璇誨彇棰滆壊欏電姸鎬?nbsp; 1BH 璁劇疆鐏板害鍊?br>
鍔熻兘鍙鳳細11H
鍔熻兘錛?瀛椾綋涓柇銆傚叾瀛愬姛鑳借鏄庡涓嬶細
瀛愬姛鑳藉彿 瀛愬姛鑳藉悕縐?br>
00H 瑁呭叆鐢ㄦ埛瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
10H 瑁呭叆鐢ㄦ埛瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
01H 瑁呭叆8×14 ROM瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
11H 瑁呭叆8×14 ROM瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
02H 瑁呭叆8×8 ROM瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
12H 瑁呭叆8×8 ROM瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
03H 璁劇疆鍧楁寚紺哄櫒
04H 瑁呭叆8×16 ROM瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
14H 瑁呭叆8×16 ROM瀛椾綋鍜屽彲緙栫▼鎺у埗鍣?br>
20H 璁劇疆INT 1Fh瀛椾綋鎸囬拡
21H 涓虹敤鎴峰瓧浣撹緗甀NT 43h
22H 涓?×14 ROM瀛椾綋璁劇疆INT 43H
23H 涓?×8 ROM瀛椾綋璁劇疆INT 43H
24H 涓?×16 ROM瀛椾綋璁劇疆INT 43H
30H 璇誨彇瀛椾綋淇℃伅
鍔熻兘鍙鳳細12H
鍔熻兘錛氭樉紺哄櫒鐨勯厤緗腑鏂傚叾瀛愬姛鑳借鏄庡涓嬶細
鍔熻兘鍙?nbsp; 鍔熻兘鍚嶇О
10H 璇誨彇閰嶇疆淇℃伅
20H 閫夋嫨灞忓箷鎵撳嵃
30H 璁劇疆鎵弿琛?br>
31H 鍏佽/紱佹瑁呭叆緙虹渷璋冭壊鏉?br>
32H 鍏佽/紱佹鏄劇ず
33H 鍏佽/紱佹鐏板害姹傚拰
34H 鍏佽/紱佹鍏夋爣妯℃嫙
35H 鍒囨崲媧誨姩鏄劇ず
36H 鍏佽/紱佹灞忓箷鍒鋒柊
鍔熻兘鍙鳳細13H
鍔熻兘錛氬湪Teletype妯″紡涓嬫樉紺哄瓧絎︿覆
鍏ュ彛鍙傛暟錛欰H錛?3H
BH錛濋〉鐮?br>
BL錛濆睘鎬?鑻L=00H鎴?1H)
CX錛濇樉紺哄瓧絎︿覆闀垮害
(DH銆丏L)錛濆潗鏍?琛屻佸垪)
ES:BP錛濇樉紺哄瓧絎︿覆鐨勫湴鍧 AL錛?鏄劇ず杈撳嚭鏂瑰紡
0鈥斿瓧絎︿覆涓彧鍚樉紺哄瓧絎︼紝鍏舵樉紺哄睘鎬у湪BL涓傛樉紺哄悗錛屽厜鏍囦綅緗笉鍙?br>
1鈥斿瓧絎︿覆涓彧鍚樉紺哄瓧絎︼紝鍏舵樉紺哄睘鎬у湪BL涓傛樉紺哄悗錛屽厜鏍囦綅緗敼鍙?br>
2鈥斿瓧絎︿覆涓惈鏄劇ず瀛楃鍜屾樉紺哄睘鎬с傛樉紺哄悗錛屽厜鏍囦綅緗笉鍙?br>
3鈥斿瓧絎︿覆涓惈鏄劇ず瀛楃鍜屾樉紺哄睘鎬с傛樉紺哄悗錛屽厜鏍囦綅緗敼鍙?br>
鍑哄彛鍙傛暟錛?鏃?br>
鍔熻兘鍙鳳細1AH
鍔熻兘錛氳鍙?璁劇疆鏄劇ず緇勫悎緙栫爜錛屼粎PS/2鏈夋晥錛屽湪姝や粠鐣?br>
鍔熻兘鍙鳳細1BH
鍔熻兘錛氳鍙栧姛鑳?鐘舵佷俊鎭紝浠匬S/2鏈夋晥錛屽湪姝や粠鐣?br>
鍔熻兘鍙鳳細1CH
鍔熻兘錛氫繚瀛?鎭㈠鏄劇ず鍣ㄧ姸鎬侊紝浠匬S/2鏈夋晥錛屽湪姝や粠鐣?/span>
while
global");
global");
global");
global");
7.
Notice: Undefined offset: 0 in E:\CODE\PHP\login\check.php on line 3鏁扮粍涓嬫爣瓚婄晫
涓嶈鍚簡鎵瑰鐞嗘枃浠跺氨鎰熷埌寰堢姘旓紝鍏跺疄榪欎笢瑗垮緢綆鍗曠殑錛庝綘鐢ㄨ繃璁頒簨鏈病鏈夛紵鐢ㄨ繃錛熴濂界殑錛庡皢璁頒簨鏈墦寮錛屼粈涔堥兘涓嶇敤鍐欙紝鐒跺悗閫夋嫨鏂囦歡錛屼繚瀛橈紟淇濆瓨綾誨瀷閫夋嫨鎵鏈夋枃浠訛紝鏂囦歡鍚嶅垯鍛藉悕涓恒錛婏紟bat銆榪欎釜錛婁唬琛ㄦ槸鏂囦歡鍚嶏紝浣犲彲浠ラ殢渚跨殑璧鳳紟淇濆瓨濂戒箣鍚庯紝鐪嬬湅浣犱繚瀛樼殑鍦版柟錛屼細鍑虹幇涓涓櫧鑹茬獥鍙i噷鏈変釜榛勮壊榻胯疆鐨勫浘鏍囷紟榪欎笢瑗垮氨鏄綘鍒涘緩鐨勬壒澶勭悊鏂囦歡錛屽弻鍑諱粬灝卞彲浠ヨ繍琛岋紝浣嗕粬鐜板湪鐢變簬閲岄潰娌℃湁杈撳叆浠諱綍鍛戒護錛屾墍浠ヤ粬榪愯浜嗗茍涓嶄細鍋氫換浣曚簨鎯咃紟褰撴垜浠兂寰榪欎釜錛?bat鏂囦歡涓坊鍔犱笢瑗挎椂錛屽彧瑕佸彸閿夋嫨浠栵紝鐒跺悗閫夋嫨緙栬緫錛屽氨鍙互鎵撳紑璁頒簨鏈線鍐呰緭鍏ュ懡浠や簡錛嶽/rm]
鎵瑰鐞嗘枃浠朵腑鐨勫懡浠ゆ槸浠涔堬紵
鎵瑰鐞嗘枃浠朵腑鐨勫懡浠ゆ殏鏃跺厛鍙互鐞嗚В涓篸os鍛戒護錛岀瓑紼嶅悗娣卞叆鐞嗚В浜嗕互鍚庡啀榪涜瑙i噴錛庢壒澶勭悊欏懼悕鎬濅箟灝辨槸涓澶у爢涓滆タ鍫嗗湪涓璧峰鐞嗭紟鎹㈠彞璇濊灝辨槸寰閲岄潰鍐欎竴鏉℃潯dos鍛戒護錛岀劧鍚庢寜欏哄簭鎸ㄤ釜鎵ц錛屾晥鏋滆窡浣犲湪cmd閲屾暡dos鍛戒護鏄竴涓晥鏋滐紟鍙笉榪囩敤鎵瑰鐞嗗啓濂戒箣鍚庯紝瑕佽繍琛屽彧瑕佸弻鍑諱笅灝卞彲浠ヨ繍琛屼簡錛庤屼笉鐢ㄥ啀涓閬嶄竴閬嶇殑閲嶅鐨勫線閲岄潰鎵撳懡浠わ紟榪欏氨鏄壒澶勭悊鏂囦歡鐨勫ソ澶勶紟
闄や簡榪愯dos鍛戒護涔嬪錛屼粬榪樺彲浠ユ敮鎸侀夋嫨緇撴瀯if錛屽驚鐜粨鏋刦or錛実oto絳夛紝涓巆鏈夌偣綾諱技錛屼絾榪滄病鏈塩鍏ㄩ潰錛屽茍涓旂紪鍐欒璦鍗佸垎涓嶈鑼冿紟
鎵瑰鐞嗚娉曪細
鍏堣涓渶鍩烘湰鐨勪笢瑗褲@echo off
echo鐨勬剰鎬濇槸鍥炴棆錛岃繖閲岀殑鎰忔濆氨鏄洖鏄撅紝echo銆off鎰忔濆氨鏄叧闂洖鏄撅紟鍓嶉潰鐨凘琛ㄧずecho off 榪欎竴琛屼篃涓嶄細鍥炴樉浣犲彲浠ヨ瘯鐫鍘繪帀@鍜屾暣琛屽幓鎺夛紟@鐨勫彟涓涓姛鑳芥槸鍦ㄦ墽琛屽畬鎵瑰鐞嗘枃浠舵椂鑷姩鎭㈠鍛戒護鍥炴樉銆傚鏋滅涓鍙ョ敤鐨勬槸ECHO OFF錛岄偅涔堝湪鎵ц瀹屾壒澶勭悊鏂囦歡浠ュ悗涓嶄細鏄劇ず鍛戒護鎻愮ず絎︺?/p>
涓句釜渚嬪瓙錛氬鏋滄垜浠厛鍒涘緩涓涓紤錛巄at鏂囦歡錛屽線閲岄潰杈撳叆錛?/p>
dir 鐒跺悗淇濆瓨鍦╟錛氾技涓嬶紟鐒跺悗鎴戜滑榪愯cmd錛岃繘鍏鐩樻牴鐩綍涓嬶紝杈撳叆錛戯紟bat錛屽垯鏄劇ず錛?/p>
C:>1.bat
C:>dir
椹卞姩鍣?C 涓殑鍗鋒病鏈夋爣絳俱?/p>
鍗風殑搴忓垪鍙鋒槸 0C5D-07FF
C: 鐨勭洰褰?/p>
2004-08-25 00:45 WINDOWS
2004-08-25 00:51 Documents and Settings
...........
C:
濡傛灉灝嗭紤錛巄at鍐呭淇敼鎴?/p>
echo off
dir
鐒跺悗鍐嶅湪cmd閲岃緭鍏ワ紤錛巄at錛屽垯浼氭樉紺?/p>
C:>1.bat
C:>echo off銆銆銆銆銆銆銆//鍥犱負榪愯浜唀cho銆off錛屾墍浠ユ病鏈夋樉紺篸ir鍛戒護錛岀洿鎺ユ樉紺轟簡緇撴灉
椹卞姩鍣?C 涓殑鍗鋒病鏈夋爣絳俱?/p>
鍗風殑搴忓垪鍙鋒槸 0C5D-07FF
C: 鐨勭洰褰?/p>
2004-08-25 00:45 WINDOWS
2004-08-25 00:51 Documents and Settings
錛庯紟錛庯紟錛?/p>
C:
濡傛灉灝嗭紤錛巄at鏂囦歡淇敼鎴愶細
@echo off
dir
鍒欐樉紺烘垚錛?/p>
C:>1.bat //涓庡墠闈笉鍚岋紝騫舵病鏈夋樉紺篹cho銆off錛屽師鍥犳槸鍔犱簡錛狅紝鎵浠ヤ笉鏄劇ず錛犲悗闈㈢殑鍐呭錛庡張鍥犱負鍔?浜唀cho銆off錛屾墍浠ュ悗闈㈢殑鍛戒護涓嶆樉紺猴紝鐩存帴鏄劇ず緇撴灉
椹卞姩鍣?C 涓殑鍗鋒病鏈夋爣絳俱?/p>
鍗風殑搴忓垪鍙鋒槸 0C5D-07FF
C: 鐨勭洰褰?/p>
2004-08-25 00:45 WINDOWS
2004-08-25 00:51 Documents and Settings
錛庯紟錛庯紟
C:
閫氳繃浠ヤ笂鐨勬瘮杈冿紝鐩鎬俊浣犲echo銆off鍛戒護宸茬粡鍏呭垎鎺屾彙浜嗭紟
鎺ヤ笅鏉ヨ鐨勬槸call鍛戒護錛?/p>
call 鏄墦鐢佃瘽鐨刢all錛岃屼笉鏄紓鍠旈潬錛傜殑闈狅細錛夛紟call鐨勬剰鎬濅負璋冪敤錛庡亣濡傛湁錛掍釜鎵瑰鐞嗘枃浠禷.bat鍜宐.bat錛庡鏋滄垜鎯寵繍琛宎.bat鐨勫綋涓繍琛?b.bat錛庡浣曡繍琛屽憿錛熷叾瀹炲緢綆鍗曪紝鍙鍦╝.bat鏂囦歡涓緭鍏all鍛戒護錛屽垯鍙互鍦╝.bat榪愯鐨勫綋涓紝榪愯b.bat錛岀瓑b.bat榪愯瀹屼箣鍚庯紝緇х畫鎵цa.bat
call鍛戒護鏍煎紡錛?/p>
CALL [drive:][path]filename [batch-parameters]
batch-parameters 鎸囧畾鎵瑰鐞嗙▼搴忔墍闇鐨勫懡浠よ淇℃伅銆?/p>
涓句緥濡備笅錛屾垜浠湪c鐩樻牴鐩綍涓嬪垱寤篴錛巄at鏂囦歡錛屽唴瀹逛負:
echo銆this is a.bat
call d:b.bat
echo done
鐒跺悗鍦╠鐩樻牴鐩綍涓嬪垱寤篵.bat錛屽唴瀹逛負錛?/p>
echo this is b.bat
淇濆瓨鍚庯紝鎵撳紑cmd錛岃繘鍏鐩樻牴鐩綍錛岀劧鍚庤緭鍏?.bat錛屾樉紺哄涓嬶細
C:>a.bat
C:>echo this is a.bat
this is a.bat
C:>call d:b.bat
C:>echo this is b.bat
this is b.bat
C:>echo done
done
鐢變緥瀛愬緢瀹規槗鐪嬪嚭鏉ワ紝鏄厛榪愯a.bat鐨勫唴瀹癸紝鐩村埌閬囧埌call銆b.bat鍚庯紝鍒欒皟鐢╞.bat錛岃繍琛屽畬b.bat鍚庯紝鍐嶈繑鍥瀉.bat鎺ョ潃榪愯call銆b.bat鍚庨潰鐨別cho銆done璇彞錛岀洿鑷沖皢a.bat鐨勬墍鏈夋壒澶勭悊鍛戒護榪愯瀹岋紟
娉細閲岄潰鏈変釜[batch-parameters]閲岄潰鐨勬墍鎸囩殑鍙傛暟鏄粈涔堬紝鐭ラ亾鐨勬湅鍙嬭兘鍚﹀憡鐭ワ紝涓嶈儨鎰熸縺錛?/p>
PAUSE 鍛戒護
鏆傚仠鎵瑰鐞嗙▼搴忕殑鎵ц騫舵樉紺轟竴鏉℃秷鎭紝鎻愮ず鐢ㄦ埛鎸変換鎰忛敭緇х畫鎵ц銆傚彧鑳藉湪鎵瑰鐞嗙▼搴忎腑浣跨敤璇ュ懡浠ゃ?/p>
rem鍛戒護錛?/p>
琛ㄧず姝ゅ懡浠ゅ悗鐨勫瓧絎︿負瑙i噴琛岋紙娉ㄩ噴錛夛紝涓嶆墽琛岋紝鍙槸緇欒嚜宸變粖鍚庡弬鑰冪敤鐨勶紙鐩稿綋浜庣▼搴忎腑鐨勬敞閲婏級錛?/p>
鍚屾椂浣犲彲浠ョ敤涓や釜鍐掑彿鏉ユ浛浠em錛庡錛氥::絳夊悓浜庝竴涓猺em錛庝絾浠栦滑鏈変釜鍖哄埆錛屽氨鏄敤::浣滄敞閲婄殑璇濅粬鏄笉鍥炴樉鐨勶紝鍗充嬌浣犳墦echo銆on寮哄埗鍥炴樉涔熸病鏈夊悓鐨勶紟鍚屾椂rem鍙互鍦╟onfig.sys涓姞娉ㄩ噴錛?/p>
璇硶錛?rem[commnet]
鎵瑰鐞嗘枃浠跺弬鏁幫細
鏈夌偣緙栫▼鍩虹鐨勪漢閮界煡閬撳嚱鏁版湁鍙傛暟錛庢壒澶勭悊鏂囦歡涔熸湁鍙傛暟錛?/p>
鎴戞墦涓瘮鏂癸紝甯屾湜鑳藉府鍔╂病鏈夎璦鍩虹鐨勪漢涔熻兘鐪嬬殑闈炲父鏄庣櫧錛庛
鎴戜粠渚嬪瓙閲屽紑濮嬪惂錛庨鍏堝湪c鐩樻牴鐩綍涓嬪垱寤轟竴涓壒澶勭悊鏂囦歡 a錛巄at錛岄噷闈㈣緭鍏ュ唴瀹?/p>
echo %1
鐒跺悗鎵撳紑cmd錛岀劧鍚庤繘鍏鐩樻牴鐩綍錛庤緭鍏ワ細a "this is a canshu"
寰楀埌緇撴灉濡備笅錛?/p>
C:>a.bat "this is a test"
C:>echo "this is a test"
"this is a test"
杈撳叆鐨刟 "this is a canshu"涓紝a涓烘柊寤虹殑a.bat鐨勬枃浠跺悕a錛堝悗闈㈢殑.bat鍙啓涔熷彲涓嶅啓錛夛紝鑰宎鍚庨潰鐨勩"this is a canshu"榪欏彞璇濆氨鏄弬鏁幫紝鍐欏湪榪欑殑鍙傛暟錛屽湪紼嬪簭榪愯涓氨灝嗗弬鏁拌嚜鍔ㄦ斁鍒版壒澶勭悊紼嬪簭涓幓錛庨偅涔堟斁鍦ㄤ粈涔堜綅緗憿錛熷氨鏄斁鍦ㄣ%1鐨勫湴鏂癸紟
鐪嬩簡渚嬪瓙錛岃鎴戜滑鐪嬬湅鏁翠釜鍏充簬鍙傛暟鐨勫畾涔夊浣曪細
鎵瑰鐞嗘枃浠惰繕鍙互鍍廋璇█鐨勫嚱鏁頒竴鏍蜂嬌鐢ㄥ弬鏁幫紙鐩稿綋浜嶥OS鍛戒護鐨勫懡浠よ鍙傛暟錛夛紝榪欓渶瑕佺敤鍒頒竴涓弬鏁拌〃紺虹"%"銆?/p>
%[1-9]琛ㄧず鍙傛暟錛屽弬鏁版槸鎸囧湪榪愯鎵瑰鐞嗘枃浠舵椂鍦ㄦ枃浠跺悕鍚庡姞鐨勪互絀烘牸錛堟垨鑰匱ab錛夊垎闅旂殑瀛楃涓層傚彉閲忓彲浠ヤ粠%0鍒?9錛?0琛ㄧず鎵瑰鐞嗗懡浠ゆ湰韜紝鍏跺畠鍙傛暟瀛楃涓茬敤%1鍒?9欏哄簭琛ㄧず銆?/鎴戜滑涓婁釜紼嬪簭鐨勪緥瀛愰噷灝辨湁錛咃紤錛屼粬灝辨槸鍙傛暟錛岃岃緭鍏ヤ腑錛倀his銆is銆a銆test錛備綔涓哄弬鏁板氨鐩存帴鏀懼埌錛咃紤鐨勪綅緗紝浜庢槸紼嬪簭灝卞彉鎴愪簡 echo "this is a test"錛?/p>
鍐嶄婦鍑犱釜渚嬪瓙甯姪浣犵悊瑙o細
C:鏍圭洰褰曚笅涓鎵瑰鐞嗘枃浠跺悕涓篵.bat錛屽唴瀹逛負:
@echo off
type %1 銆銆銆銆//type涓篸os涓殑杈撳嚭鍛戒護錛屽彲浠ョ敤鏉ヨ緭鍑烘枃鏈枃浠剁殑鍐呭錛屾瘮濡傛垜浠柊寤轟竴涓紤錛巘xt鏂囦歡
//閲岄潰杈撳叆鍐呭錛屼繚瀛橈紟榪沜md錛屽鏋滆緭鍏ワ紤錛巘xt鍒欑湅涓嶄簡錛戯紟txt鏂囦歡鍐呭錛屼絾鏄鏋滄垜
//鎯崇湅鎬庝箞鍔炲憿錛熻繖鏃跺欏彲浠ョ敤type鍛戒護錛屽彧瑕佸湪cmd閲岃緭鍏ype銆錛戯紟txt灝辮兘鏄劇ず
//錛戯紟txt鏂囦歡涓殑鍐呭浜嗐
type %2
閭d箞榪愯C:>b a.txt b.txt
%1 : 琛ㄧずa.txt
%2 : 琛ㄧずb.txt
浜庢槸涓婇潰鐨勬壒澶勭悊鍛戒護灝卞彉鎴愪簡
@echo off
type a.txt
type b.txt
浜庢槸涓婇潰鐨勫懡浠ゅ皢欏哄簭鍦版樉紺篴.txt鍜宐.txt鏂囦歡鐨勫唴瀹廣?/p>
娌℃湁緙栫▼鍩虹鐨勪漢鍙兘瑕侀棶錛屽共浠涔堣寮勪釜鍙傛暟鍟婏紵鍦ㄥ悗闈㈠姞涓弬鏁板楹葷儲鍟婏紵鐩存帴寰閲岄潰鍐欎笉灝卞ソ浜嗗晩錛燂紒鍏跺疄榪欐牱鎯蟲湁瀵圭殑鏂歸潰涔熸湁閿欑殑鏂歸潰錛庤繕鏄婦涓緥瀛愯鏄庡惂錛?/p>
絎竴姝ヨ繕鏄湪c鐩樻牴鐩綍涓嬫柊寤轟竴涓壒澶勭悊鏂囦歡錛屾垜浠彇鍚嶄粛涓篴.bat錛庡線閲岄潰鐨勫唴瀹硅緭鍏ヤ負錛?/p>
ping %1銆銆//ping鍛戒護鍙互綆鍗曠悊瑙d負嫻嬭瘯涓鍙版満鍣ㄥ紑鐫榪樻槸娌℃湁寮錛屽鏋滃紑鐫鐨勮瘽錛屼粬灝卞洖緇欎綘鍥為佸洖搴旓紟
鐒跺悗榪沜md錛屾垜浠兂嫻嬭瘯涓嬶紤錛栵紦鐨勬湇鍔″櫒鏄笉鏄紑鐫錛屽垯杈撳叆a www.163.com
瀵逛簬鐭ラ亾ping鍛戒護鐨勪漢錛屽彲浠ユ墦ping榪涜媯鏌ワ紝浣嗗鏋滄兂ping鐨勪漢涓嶇煡閬損ing鍛戒護鎬庝箞鐢紝閭f庝箞鍔炲晩錛熻繖鏃跺欎綘灝卞彲浠ユ妸鍛戒護棰勫厛杈撳叆鍒版壒澶勭悊鏂囦歡涓紝淇濆瓨濂斤紝鐒跺悗璁╀笉浼氱敤鐨勪漢榪沜md錛岃繍琛屼綘鐨勬壒澶勭悊鏂囦歡錛屾枃浠跺悕鍚庨潰鍔犱笂浠栬ping銆鐨勭綉绔欏湴鍧灝辮浜嗭紟鎹㈠彞璇濊錛屼粬鎯硃ing銆錛戯紪錛撳氨鐩存帴鍔狅紤錛栵紦鐨勭綉鍧錛屾兂ping銆sina灝辯洿鎺ュ姞sina鐨勭綉鍧錛庤繖鏍峰彧瑕佽緭鍏ヤ竴涓弬鏁幫紝鑰屼笉鐢ㄦ敼紼嬪簭鏈韓錛屾暣涓▼搴忕殑閫氱敤鎬у氨澶уぇ鎻愰珮浜嗭紟
榪欐槸瀵逛簬涓涓畝鍗曠殑ping鍛戒護錛屼綘鎴栬瑙夊緱鐢ㄥ弬鏁頒笉鍊煎緱錛岃繕鏄洿鎺ユ敼涓嶅氨濂戒簡鍟婏紟浣嗗鏋滅▼搴忔湁寰堝鏉★紝浣犱竴涓嬫壘涓嶅埌鍦ㄥ摢鏀規庝箞鍔炲晩錛熸墍浠ワ紝涓嶇浣犳槸鑿滃摜錛岃彍寮燂紝鑿滃錛岃彍濡癸紝鍙榪愯涓嬶紝杈撳叆鍙傛暟錛岀粨鏋滆嚜宸卞氨浼氬嚭鏉ワ紝涓嶇敤鍐嶈薄浣犱竴鏍鳳紝鑰冭檻鎬庝箞緙栧啓鎵瑰鐞嗘枃浠訛紟浜哄鍙鐭ラ亾鏄緭鍏ヤ粈涔堜笢瑗胯兘璁╂壒澶勭悊紼嬪簭榪愯錛岃岀紪鍐欑殑浜哄垯鎯崇殑鏄浣曡涓嶆噦紼嬪簭鐨勪漢鑳借繍琛岀▼搴忥紟
鎵瑰鐞嗗弬鏁板氨榪欎箞綆鍗曪紝涓嶇煡閬撲綘鐞嗚В浜嗘病鏈夛紵浣嗗鏋滀綘鎯蟲繁涓姝ヤ簡瑙f壒澶勭悊鍙傛暟錛屽彲浠ユ帴鐫寰涓嬬湅錛屽鏋滀笉鎯蟲繁鍏ヤ簡瑙o紝鐭ラ亾鐜板湪榪欎箞澶氫篃灝卞浜嗭紟
錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳錛濓紳
鍥犱負鍙傛暟鍙湁錛戯紖錛嶏紮錛咃紝浣嗗綋鎴戜滑瑕佸紩鐢ㄧ鍗佷釜鎴栨洿澶氫釜鍙傛暟鏃? 灝卞繀欏葷Щ鍔―OS 鐨勫弬鏁拌搗濮嬫寚閽? shift 鍛戒護姝e厖褰撲簡榪欎釜縐誨姩鎸囬拡鐨勮鑹? 瀹冨皢鍙傛暟鐨勮搗濮嬫寚閽堢Щ鍔ㄥ埌涓嬩竴涓弬鏁? 綾諱技C 璇█涓殑鎸囬拡鎿嶄綔. 鍥劇ず濡備笅:
鍒濆鐘舵? cmd 涓哄懡浠ゅ悕, 鍙互鐢?%0 寮曠敤
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
緇忚繃1嬈hift鍚? cmd 灝嗘棤娉曡寮曠敤
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
緇忚繃2嬈hift鍚? arg1涔熻搴熷純, %9鎸囧悜涓虹┖, 娌℃湁寮曠敤鎰忎箟
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
閬楁喚鐨勬槸, win9x 鍜孌OS涓嬪潎涓嶆敮鎸?shift 鐨勯嗘搷浣? 鍙湁鍦?nt 鍐呮牳鍛戒護琛岀幆澧冧笅, shift 鎵嶆敮鎸?/n 鍙傛暟, 鍙互浠ョ涓鍙傛暟涓哄熀鍑嗚繑澶嶇Щ鍔ㄨ搗濮嬫寚閽?
=================
if goto choice for楂樼駭璇硶
if鍛戒護
璇村緱閫氫織鐐癸紝if灝辯浉褰撲簬鎴戜滑鐧借瘽閲岀殑濡傛灉錛?/p>
涓句釜渚嬪瓙錛氬鏋渁鍠滄b錛岄偅涔坅灝辮濞禸錛庛榪欏彞璇濈炕璇戞垚璁$畻鏈鴻璦灝辨垚浜?/p>
if銆a鍠滄b銆a灝辮濞禸錛?/p>
褰撶劧鎷夛紝璁$畻鏈轟笉鍙兘鐞嗚Вa鍠滄b錛宎灝辮濞禸榪欎袱鍙ヨ瘽錛岃繖閲屽彧鏄婦涓緥瀛愯浣犳柟渚跨悊瑙o紟
if璇彞涓鍏辨湁3縐嶆ā寮?濡備笅:
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
IF [NOT] ERRORLEVEL number command
NOT 鎸囧畾鍙湁鏉′歡涓?false 鐨勬儏鍐典笅錛?Windows XP 鎵嶅簲璇ユ墽琛岃鍛戒護銆?/p>
ERRORLEVEL number 濡傛灉鏈鍚庤繍琛岀殑紼嬪簭榪斿洖涓涓瓑浜庢垨澶т簬鎸囧畾鏁板瓧鐨勯鍑虹紪鐮侊紝鎸囧畾鏉′歡涓?true銆?/p>
string1==string2 濡傛灉鎸囧畾鐨勬枃瀛楀瓧絎︿覆鍖歸厤錛屾寚瀹氭潯浠朵負 true銆?/p>
EXIST filename 濡傛灉鎸囧畾鐨勬枃浠跺悕瀛樺湪錛屾寚瀹氭潯浠朵負 true銆?/p>
command 濡傛灉絎﹀悎鏉′歡錛屾寚瀹氳鎵ц鐨勫懡浠ゃ傚鏋滄寚瀹氱殑鏉′歡涓?FALSE錛屽懡浠ゅ悗鍙窡涓涓墽琛?ELSE鍏抽敭瀛楀悗鐨勫懡浠ょ殑 ELSE 鍛戒護銆?/p>
鎴戜滑鍏堣瑙g涓縐?
IF [NOT] string1==string2 command
鑷劧璇彞鎰忔濓細濡傛灉string1錛濓紳string2錛岄偅涔堟墽琛宑ommand
涓嬮潰鍐嶄婦涓兘瀹為檯搴旂敤鐨刬f璇彞錛?/p>
鑷劧璇彞錛氬鏋滆緭鍏ョ殑鍙傛暟涓猴紦錛岄偅涔堟樉紺猴紓a錛濓紦錛?/p>
璁$畻鏈鴻鍙ワ細
@echo off
if "%1"=="3" echo "a=3"
鎴栬呭啓鎴?/p>
@echo off
if %1==3 echo "a=3"
娉ㄦ剰:褰撹嫻嬭瘯鐨勬椂鍊?鍥犲湪cmd搴曚笅,杈撳叆1.bat 3.鍥犱負榪欓噷鐢ㄤ簡鏄紶閫掑弬鏁?鍏蜂綋鐪嬫枃绔犲墠閮ㄥ垎"鎵瑰鐞嗘枃浠跺弬鏁?.
絎簩縐嶏細
IF [NOT] EXIST filename command
榪欐潯鍛戒護鐢ㄨ媯嫻嬫枃浠舵槸鍚﹀瓨鍦紟濡傛灉瀛樺湪錛屾墽琛宑ommand錛庡鏋滀笉瀛樺湪錛屽垯浠涔堜篃涓嶆樉紺猴紟
濡傦細鎴戜滑鎯蟲鏌鐩樻牴鐩綍涓嬫槸鍚︽湁涓涓彨錛?txt鐨勬枃浠訛紟濡傛灉瀛樺湪錛屽垯鏄劇ずexist錛庡鏋滀笉瀛樺湪錛屽垯浠涔堜篃涓嶆樉紺猴紟
鎵瑰鐞嗗懡浠ゅ涓嬶細
@echo off
if exist e:2.txt echo "exist 2.txt"
絎笁縐嶏細
IF [NOT] ERRORLEVEL number command
榪欎釜鎴戝紩鐢ㄧ偣璧勬枡錛屾劅瑙夊埆浜哄啓寰楁洿璇︾粏錛屽紩鐢ㄩ儴鍒嗕負姍欒壊瀛楅儴鍒嗭細
if errorlevel 寰呮墽琛岀殑鍛戒護
寰堝DOS紼嬪簭鍦ㄨ繍琛岀粨鏉熷悗浼氳繑鍥炰竴涓暟瀛楀肩敤鏉ヨ〃紺虹▼搴忚繍琛岀殑緇撴灉(鎴栬呯姸鎬?錛岄氳繃if errorlevel鍛戒護鍙互鍒ゆ柇紼嬪簭鐨勮繑鍥炲鹼紝鏍規嵁涓嶅悓鐨勮繑鍥炲兼潵鍐沖畾鎵ц涓嶅悓鐨勫懡浠?榪斿洖鍊煎繀欏繪寜鐓т粠澶у埌灝忕殑欏哄簭鎺掑垪)銆傚鏋滆繑鍥炲肩瓑浜庢寚瀹氱殑鏁板瓧錛屽垯鏉′歡鎴愮珛錛岃繍琛屽懡浠わ紝鍚﹀垯榪愯涓嬩竴鍙ャ?/p>
濡俰f errorlevel 2 goto x2
==== 娉?===========
榪斿洖鍊間粠澶у埌灝忕殑欏哄簭鎺掑垪涓嶆槸蹇呴』鐨? 鑰屽彧鏄墽琛屽懡浠や負 goto 鏃剁殑涔犳儻鐢ㄦ硶, 褰撲嬌鐢?set 浣滀負鎵ц鍛戒護鏃? 閫氬父浼氫粠灝忓埌澶ч『搴忔帓鍒? 姣斿闇灝嗚繑鍥炵爜緗叆鐜鍙橀噺, 灝遍渶浣跨敤浠ヤ笅鐨勯『搴忓艦寮?
if errorlevel 1 set el=1
if errorlevel 2 set el=2
if errorlevel 3 set el=3
if errorlevel 4 set el=4
if errorlevel 5 set el=5
...
褰撶劧, 涔熷彲浠ヤ嬌鐢ㄤ互涓嬪驚鐜潵鏇夸唬, 鍘熺悊鏄竴鑷寸殑:
for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e //姝ゅ涓轟竴涓猣or寰幆錛屽悗闈細緇х畫銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆銆浠嬬粛鍒扮殑錛岀湅涓嶆噦鍙互鍏堣煩榪囧幓
if errorlevel 姣旇緝榪斿洖鐮佺殑鍒ゆ柇鏉′歡騫墮潪絳変簬, 鑰屾槸澶т簬絳変簬. 鐢變簬 goto 鐨勮煩杞壒鎬? 鐢卞皬鍒板ぇ鎺掑簭浼氬鑷村湪杈冨皬鐨勮繑鍥炵爜澶勫氨璺沖嚭; 鑰岀敱浜?set鍛戒護鐨?"閲嶅" 璧嬪肩壒鎬? 鐢卞ぇ鍒板皬鎺掑簭浼氬鑷磋緝灝忕殑榪斿洖鐮?"瑕嗙洊" 杈冨ぇ鐨勮繑鍥炵爜.
鍙﹀, 铏界劧 if errorlevel= command 涔熸槸鏈夋晥鐨勫懡浠よ, 浣嗕篃鍙槸 command.com 瑙i噴鍛戒護琛屾椂灝?= 浣滀負鍛戒護琛屽垏鍒嗙鑰屽拷鐣ユ帀緗簡
choice鍛戒護
goto鍛戒護
for鍛戒護
for鍛戒護鍏跺疄灝辨槸涓涓驚鐜懡浠?濡傛灉鎴戜滑鎯抽噸澶嶄竴涓鍙?灝卞彲浠ョ敤for鍛戒護.閫氳繃for鍛戒護,鍙互鎺у埗寰幆鐨勬鏁扮瓑.
璇硶:
FOR %variable IN (set) DO command [command-parameters]
%variable 鎸囧畾涓涓崟涓瀛楁瘝鍙浛鎹㈢殑鍙傛暟銆?/p>
(set) 鎸囧畾涓涓垨涓緇勬枃浠躲傚彲浠ヤ嬌鐢ㄩ氶厤絎︺?/p>
command 鎸囧畾瀵規瘡涓枃浠舵墽琛岀殑鍛戒護銆?/p>
command-parameters
涓虹壒瀹氬懡浠ゆ寚瀹氬弬鏁版垨鍛戒護琛屽紑鍏熾?/p>
鍦ㄦ壒澶勭悊鏂囦歡涓嬌鐢?FOR 鍛戒護鏃訛紝鎸囧畾鍙橀噺璇蜂嬌鐢?%%variable
鑰屼笉瑕佺敤 %variable銆傚彉閲忓悕縐版槸鍖哄垎澶у皬鍐欑殑錛屾墍浠?%i 涓嶅悓浜?%I.
涓嶇煡閬撲綘浣犵湅鎳備簡娌℃湁錛屽叾瀹炶繕鏄緢瀹規槗鐞嗚В鐨勶紝榪樻槸涓句釜渚嬪瓙鍚э紟鎴戞兂鐢╰ype鎵撳嵃鎵鏈塩鐩樻牴鐩綍涓嬬殑bat鏂囦歡鍜宼xt鏂囦歡錛巇os搴曚笅鍛戒護灝辨槸銆type銆錛婏紟bat銆錛?txt錛庡厛灝嗚鏂囦歡淇濆瓨鍦╟鐩樻牴鐩綍涓?鍚嶇О涓篴.bat
鐢╢or鍛戒護濡備笅錛?/p>
for %%t in (*.bat *.txt) do type %%t
%%t鍏跺疄灝辨槸浠h〃鐨勪竴涓弬鏁幫紝浠栫殑鍐呭鍦╥n() 閲岄潰鎷彿閲岀殑鍐呭.涔熷氨鏄榪欏彞璇濋噷鐨?%t灝卞彉鎴愪簡*.bat *.txt浜?do灝辨槸鍋氱殑鎰忔?鎵цtype鍛戒護,鑰宼ype鍚庨潰鏄?%t,鑰?%t鍙堟槸*.bat *.txt.鎵浠ュ師鏉ヨ繖鍙ュ懡浠ょ殑鎰忔濆氨鍙樻垚浜?
type *.bat *.txt
鎵ц鏃惰繘cmd,鐒跺悗鍒癱鐩樻牴鐩綍涓嬭緭鍏.bat灝卞彲浠ユ墦鍗板嚭c鐩樻牴鐩綍涓嬫墍鏈夋墿灞曞悕涓?bat鍜?txt鐨勬枃浠跺唴瀹逛簡.
榪欓噷瑕佹敞鎰忥細in鍚庨潰鏈変釜絀烘牸錛?/p>
鍦▁p搴曚笅,for鍛戒護鎵╁睍鍚嶈璧風敤鍥犳for鐨勫姛鑳藉彉寰楁洿鍔犲己澶?涓嬮潰璁蹭竴涓湡姝g殑寰幆.
FOR /L %variable IN (start,step,end) DO command [command-parameters]
璇ラ泦琛ㄧず浠ュ閲忓艦寮忎粠寮濮嬪埌緇撴潫鐨勪竴涓暟瀛楀簭鍒椼?/p>
鍥犳錛?1,1,5) 灝嗕駭鐢熷簭鍒?1 2 3 4 5錛?5,-1,1) 灝嗕駭鐢?/p>
搴忓垪 (5 4 3 2 1)
閲岄潰絎竴涓?鍦╯tart鐨勪綅緗?鎰忔濇槸璧峰浣嶇疆,絎?涓?鍦╯tep浣嶇疆,鑻辨枃鎰忔濇槸璺ㄦ,鍦ㄨ繖閲岄潰鐨勬剰鎬濇槸姣忔澧為噺涓?.鍚庨潰鐨?鍦╡nd鐨勪綅緗?鎰忔濇槸緇撴潫鏃剁殑澶у皬.
榪欏彞璇濈殑鎰忔濆氨鏄粠1(start)寮濮嬪鍔?姣忔澧炲姞1(step),涓鐩村埌鍙樺埌5(end)涓烘.
榪欎釜鏈変粈涔堢敤鍛?鍏跺疄鎴戞劅瑙夎繖涓笢瑗跨殑鐢ㄥ榪樻槸寰堝ぇ鐨?涓句釜鏈綆鍗曠殑渚嬪瓙,鎴戜滑鎯抽噸澶嶅洖鏄?i am the best"榪欏彞璇?閲嶅鏄劇ず10閬?閭d箞for鍛戒護濡備笅:
for /L %%e in (1,1,10) do echo "i am the best"
榪欐椂,cmd灝變細閲嶅杈撳叆"i am the best"10閬?
===============================================
鐜板湪涓嶇煡閬撲綘瀵筨at鏈変簡浠涔堟牱鐨勭悊瑙o紝鎴戠幇鍦ㄧ殑鎰熻灝辨槸bat灝辨槸dos鍛戒護鐨勭粍鍚堬紝浣犳妸dos鍛戒護鍏ㄥ啓榪沚at鍛戒護錛屽彧瑕佽繍琛屼笅bat灝變細鎸ㄤ釜鎵цdos鍛戒護錛岃繖鏃犵枒鎻愪緵浜嗕笉灝戠殑鏂逛究銆?/p>
涓嬮潰鎴戝啀涓句簺瀹炰緥.
鍒犻櫎榛樿鍏變韓:
瀵逛簬榛樿鍏變韓涓嶇煡閬撲綘浜嗚В澶氬皯,鍙嶆鐣欑潃鏄釜闅愭偅,鐜板湪鍞竴鐨勫姙娉曞ソ璞″彧鑳藉仛涓猙at鏂囦歡榪涜鍒犻櫎.鍛戒護濡備笅:
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete
net share e$ /delete
……
閲岄潰鐨刢銆d銆e涓轟綘鐨勭洏絎︺傚鏋滀綘鍙湁涓涓垎鍖猴紝閭d箞鍐欏埌net share c$ /delete涓烘灝卞彲浠ヤ簡銆傚鏋滀綘鏈塶涓垎鍖猴紝閭d箞灝辨尐涓啓涓嬪幓銆?/p>
net share d$ /delete
net share e$ /delete
net share f$ /delete
net share g$ /delete……
鐧婚檰鍒板眬鍩熺綉鐨勬満鍣ㄥ揩鎹鋒柟寮?瀵規柟鏈哄櫒鏈夊瘑鐮佷笖涓?000鎴栦互涓婄郴緇?
net use 2.168.0.1 [瀵嗙爜] /user:[鐢ㄦ埛鍚峕
explorer 2.168.0.1
bat鏂囦歡澶囦喚娉ㄥ唽琛?/p>
set regfile=%date% //璁劇疆鍙橀噺錛屼笅闈㈠嚭鐜?regfile%鐨勯兘鑷姩鏇挎崲“褰撳ぉdate”
if exist "%regfile%" goto end //濡傛灉鍙戠幇褰撳ぉdate鍛藉悕鐨勭洰褰曪紝璺沖埌鏂囦歡灝俱?/p>
md temp //寤簍emp鐩綍
call 1.bat //璋冪敤1.bat
del 1.bat
ren 2.bat 1.bat
ren 3.bat 2.bat
ren 4.bat 3.bat
echo move "%regfile%" temp >4.bat //鍐?縐誨姩“褰撳ぉdate鍛藉悕鐨勭洰褰?#8221;鍒皌emp鐨刡at鏂囦歡 銆?/p>
md "%regfile%" //寤哄綋澶ヾate鍛藉悕鐨勭洰褰?/p>
cd "%regfile%" //榪涘叆
reg export hkcu hkcu.reg //瀵煎嚭娉ㄥ唽琛?/p>
reg export hklm hklm.reg
//HKEY_CURRENT_USER 緙╁啓hkcu 銆傚瓨鏀懼綋鍓嶇敤鎴蜂釜浜烘暟鎹?/p>
//HKEY_LOCAL_MACHINE 緙╁啓hklm 銆傜郴緇熺殑鏍稿績鏁版嵁
cd..
deltree /y temp >nul ////榪斿洖涓婄駭鐩綍 錛屽垹temp鏂囦歡澶?/p>
:end
銆銆class CSingleton:
銆銆{
銆銆// 鍏跺畠鎴愬憳
銆銆public:
static CSingleton * GetInstance()
銆銆 {
銆銆 if (m_pInstance == NULL)
m_pInstance = new CSingleton();
return m_pInstance;
}
銆銆private:
銆銆 CSingleton(){};
銆銆 static CSingleton * m_pInstance;
銆銆}
銆銆鍗曚緥綾籆Singleton鏈変互涓嬬壒寰侊細
銆銆 瀹冩湁涓涓寚鍞竴瀹炰緥鐨勯潤鎬佹寚閽坢_pInstance錛屽茍涓旀槸縐佹湁鐨勩?br>銆銆 瀹冩湁涓涓叕鏈夌殑鍑芥暟錛屽彲浠ヨ幏鍙栬繖涓敮涓鐨勫疄渚嬶紝騫跺湪闇瑕佺殑鏃跺欏垱寤鴻瀹炰緥銆?br>銆銆 瀹冪殑鏋勯犲嚱鏁版槸縐佹湁鐨勶紝榪欐牱灝變笉鑳戒粠鍒鍒涘緩璇ョ被鐨勫疄渚嬨?br>銆銆澶у鏃跺欙紝榪欐牱鐨勫疄鐜伴兘涓嶄細鍑虹幇闂銆傛湁緇忛獙鐨勮鑰呭彲鑳戒細闂紝m_pInstance鎸囧悜鐨勭┖闂翠粈涔堟椂鍊欓噴鏀懼憿錛熸洿涓ラ噸鐨勯棶棰樻槸錛岃繖涓疄渚嬬殑鏋愭瀯鎿嶄綔浠涔堟椂鍊欐墽琛岋紵
銆銆濡傛灉鍦ㄧ被鐨勬瀽鏋勮涓轟腑鏈夊繀欏葷殑鎿嶄綔錛屾瘮濡傚叧闂枃浠訛紝閲婃斁澶栭儴璧勬簮錛岄偅涔堜笂闈㈡墍紺虹殑浠g爜鏃犳硶瀹炵幇榪欎釜瑕佹眰銆傛垜浠渶瑕佷竴縐嶆柟娉曪紝姝e父鍦板垹闄よ瀹炰緥銆?br>銆銆鍙互鍦ㄧ▼搴忕粨鏉熸椂璋冪敤GetInstance騫跺榪斿洖鐨勬寚閽堣皟鐢╠elete鎿嶄綔銆傝繖鏍峰仛鍙互瀹炵幇鍔熻兘錛屼絾鏄笉浠呭緢涓戦檵錛岃屼笖瀹規槗鍑洪敊銆傚洜涓鴻繖鏍風殑闄勫姞浠g爜寰堝鏄撹蹇樿錛岃屼笖涔熷緢闅句繚璇佸湪delete涔嬪悗錛屾病鏈変唬鐮佸啀璋冪敤GetInstance鍑芥暟銆?br>銆銆涓涓Ε鍠勭殑鏂規硶鏄榪欎釜綾昏嚜宸辯煡閬撳湪鍚堥傜殑鏃跺欐妸鑷繁鍒犻櫎銆傛垨鑰呰鎶婂垹闄よ嚜宸辯殑鎿嶄綔鎸傚湪緋葷粺涓殑鏌愪釜鍚堥傜殑鐐逛笂錛屼嬌鍏跺湪鎭板綋鐨勬椂鍊欒嚜鍔ㄨ鎵ц銆?br>銆銆鎴戜滑鐭ラ亾錛岀▼搴忓湪緇撴潫鐨勬椂鍊欙紝緋葷粺浼氳嚜鍔ㄦ瀽鏋勬墍鏈夌殑鍏ㄥ眬鍙橀噺銆備簨瀹炰笂錛岀郴緇熶篃浼氭瀽鏋勬墍鏈夌殑綾葷殑闈欐佹垚鍛樺彉閲忥紝灝卞儚榪欎簺闈欐佹垚鍛樹篃鏄叏灞鍙橀噺涓鏍楓傚埄鐢ㄨ繖涓壒寰侊紝鎴戜滑鍙互鍦ㄥ崟渚嬬被涓畾涔変竴涓繖鏍風殑闈欐佹垚鍛樺彉閲忥紝鑰屽畠鐨勫敮涓宸ヤ綔灝辨槸鍦ㄦ瀽鏋勫嚱鏁頒腑鍒犻櫎鍗曚緥綾葷殑瀹炰緥銆傚涓嬮潰鐨勪唬鐮佷腑鐨凜Garbo綾伙紙Garbo鎰忎負鍨冨溇宸ヤ漢錛夛細
銆銆class CSingleton:
銆銆{
銆銆// 鍏跺畠鎴愬憳
銆銆public:
銆銆 static CSingleton * GetInstance()
銆銆private:
銆銆 CSingleton(){};
static CSingleton * m_pInstance;
銆銆class CGarbo // 瀹冪殑鍞竴宸ヤ綔灝辨槸鍦ㄦ瀽鏋勫嚱鏁頒腑鍒犻櫎CSingleton鐨勫疄渚?br>銆銆{
銆銆public:
銆銆 ~CGarbo()
銆銆 {
if (CSingleton::m_pInstance)
delete CSingleton::m_pInstance;
}
銆銆};
銆銆 static CGarbo Garbo; // 瀹氫箟涓涓潤鎬佹垚鍛橈紝鍦ㄧ▼搴忕粨鏉熸椂錛岀郴緇熶細璋冪敤瀹冪殑鏋愭瀯鍑芥暟
銆銆}
銆銆綾籆Garbo琚畾涔変負CSingleton鐨勭鏈夊唴宓岀被錛屼互闃茶綾昏鍦ㄥ叾瀹冨湴鏂規互鐢ㄣ?/font>
銆銆鍦ㄧ▼搴忚繍琛岀粨鏉熸椂錛岀郴緇熶細璋冪敤CSingleton鐨勯潤鎬佹垚鍛楪arbo鐨勬瀽鏋勫嚱鏁幫紝璇ユ瀽鏋勫嚱鏁頒細鍒犻櫎鍗曚緥鐨勫敮涓瀹炰緥銆?br>銆銆浣跨敤榪欑鏂規硶閲婃斁鍗曚緥瀵硅薄鏈変互涓嬬壒寰侊細
銆銆 鍦ㄥ崟渚嬬被鍐呴儴瀹氫箟涓撴湁鐨勫祵濂楃被銆?br>銆銆 鍦ㄥ崟渚嬬被鍐呭畾涔夌鏈夌殑涓撻棬鐢ㄤ簬閲婃斁鐨勯潤鎬佹垚鍛樸?br>銆銆 鍒╃敤紼嬪簭鍦ㄧ粨鏉熸椂鏋愭瀯鍏ㄥ眬鍙橀噺鐨勭壒鎬э紝閫夋嫨鏈緇堢殑閲婃斁鏃舵満銆?br>銆銆 浣跨敤鍗曚緥鐨勪唬鐮佷笉闇瑕佷換浣曟搷浣滐紝涓嶅繀鍏沖績瀵硅薄鐨勯噴鏀俱?/font>
----------------------------------------------------------------------------------------------------------------------------------
浠ヤ笂灝辨槸杞澆鐨勪竴涓猚++涓殑鍗曚緥妯″紡銆傚湪榪欎釜閲岄潰娑夊強鍒頒簡m_pInstance鎸囧悜鐨勭┖闂翠粈涔堟椂鍊欓噴鏀懼憿錛熸洿涓ラ噸鐨勯棶棰樻槸錛岃繖涓疄渚嬬殑鏋愭瀯鎿嶄綔浠涔堟椂鍊欐墽琛岋紵鍚庨潰浣跨敤鐨勫唴宓岀被鏂規硶涓漢瑙夊緱騫朵笉鏄緢濂斤紝濡傛灉鍙堣娣誨姞鍙︿竴涓崟渚嬬被鏄笉鏄篃瑕佸湪鍐呭祵綾諱腑鍒犻櫎姝ゅ崟渚嬬被鐨勫疄渚嬪憿錛熷鏋滄垜瑕佹坊鍔?00涓憿錛熶綘鐪嬫湁澶氶夯鐑﹀晩錛?/font>
浠ヤ笅鏄浠ュ墠欏圭洰涓嬌鐢ㄥ埌鐨勫崟渚嬫ā寮忕殑鎻愬彇錛?/font>
#include <iostream>
using namespace std;
綾葷殑瀹氫箟搴旇鏄湪*.h鏂囦歡涓殑錛岃繖閲屽伔鎳掍簡
class Singleton
{
public:
Singleton();
static Singleton *GetInstance() ;
};
浠ヤ笅搴旇鍦?.cpp鏂囦歡涓?/font>
static Singleton *instance = NULL;
Singleton::Singleton()
{
instance = this;
}
Singleton *Singleton::GetInstance()
{
return instance;
}
浠ヤ笅鏄湪浣跨敤鐨勫湴鏂?/font>
int main()
{
Singleton singles;
Singleton *p1 = Singleton::GetInstance();
Singleton *p2 = Singleton::GetInstance();
if (p1 == p2)
{
cout <<"Two objects is the same instance" <<endl;
}
return 0;
}
鍦ㄤ互涓婄殑紼嬪簭涓紝鐪嬪埌榪欎釜鍜寊t涓殑鏄被浼肩殑銆備篃鏈変釜鍚屾牱鐨勯棶棰樺嚭鐜頒簡銆傚湪榪欎釜閲岄潰娑夊強鍒頒簡m_pInstance鎸囧悜鐨勭┖闂翠粈涔堟椂鍊欓噴鏀懼憿錛熸洿涓ラ噸鐨勯棶棰樻槸錛岃繖涓疄渚嬬殑鏋愭瀯鎿嶄綔浠涔堟椂鍊欐墽琛岋紵鍝堝搱錛岃繖涓憿鍦ㄩ」鐩腑鏄湁澶勭悊鐨勶紝鍥犱負鏄繖涓崟渚嬪璞$敓鎴愬悗浜嗘槸瑕佷繚瀛樺湪涓涓鍣ㄤ腑鐨勶紝鑰屼笖鎵鏈夌殑綾諱技鍗曚緥鏄鍚屼竴涓熀綾葷殑緇ф壙錛屾墍浠ュ埄鐢ㄥ鎬佺壒鐐箆ector<type*>鍐嶅姞涓涓凱浠e櫒灝卞彲浠ュ緢瀹規槗瀵規墍鏈夌殑榪欎簺鍗曚緥瀵硅薄榪涜鍒犻櫎鎿嶄綔浜嗐傝繖涓簲璇ヨ鏄」鐩湪璁捐鐨勬椂鍊欏氨鑰冭檻鍒扮殑浜嗐?/font>
榪欎釜錛岃繕鏈夋病鏈夋洿濂姐佷竴鍔蟲案閫哥殑鏂規硶鍛紵鏈嬪弸鐪嬪埌鍚庡憡璇変簡涓粬鐪嬪埌鐨勫緢鐗涚殑鍗曚緥鍐欐硶錛屼笉寰椾笉浣╂湇錛岀湡鐨勫緢鐗涖傚悗鏉ュ湪CSND璁哄潧涓婄殑涓涓笘瀛愪腑涔熺湅鍒頒簡鏌愪綅澶氱嚎紼嬮珮鎵嬩篃璐村嚭浜嗚繖縐嶆柟娉曘?/p>
#include <iostream>
using namespace std;
class Singleton
{
private:
Singleton(){}
public:
static Singleton *GetInstance()
{
static Singleton singles;//鍦ㄦ瀹氫箟闈欐佸璞?br> return &singles;
}
};
int main()
{
Singleton *p1 = Singleton::GetInstance();
Singleton *p2 = Singleton::GetInstance();
if (p1 == p2)
{
cout <<"Two objects is the same instance" <<endl;
}
return 0;
}
hoho錛岃屽悗緇х畫浜嗕笅錛屼負浜嗘柟渚匡紝澶氫釜鍐欐垚浜嗘ā鏉跨被褰㈠紡錛屼嬌寰楃戶鎵胯嚜鍗曚緥妯″紡鐨勮嚜鍔ㄤ負鍗曚緥妯″紡銆?/p>
#include <iostream>
#include <assert.h>
using namespace std;
template<class type>
class Singleton
{
public:
static type *GetInstance()
{
static type singles;
return &singles;
}
protected:
Singleton(){}
};
class resourcemanage : public Singleton<resourcemanage>
{
public:
resourcemanage(){}
void showlog()
{
cout<<"resoucemange"<<endl;
}
};
class mange : public Singleton<mange>
{
public:
mange(){}
void showtexer()
{
cout<<"show texture"<<endl;
}
};
int main()
{
//Singleton *singles = new Singleton;
resourcemanage *p1 = resourcemanage::GetInstance();
resourcemanage *p2 = resourcemanage::GetInstance();
mange::GetInstance()->showtexer();
p2->showlog();
if (p1 == p2)
{
cout <<"Two objects is the same instance" <<endl;
}
return 0;
}
hoho錛屼竴涓崟渚嬫ā寮忕珶鐒惰兘寮曞嚭榪欓航澶氱殑涓滀笢錛岀湡鏄涔犱簡涓嶅皯鍟婏紝鍝堝搱鍝堝搱鍝堝搱錛?/p>
鏈鍚庤創涓媍sdn鍏充簬榪欎釜鍗曚緥妯″紡鐨勭墰浜鴻璁哄笘錛?/p>
http://topic.csdn.net/u/20080218/08/291c52f9-5ed0-4f7c-abeb-69f691c2e7f4.html
闈欐佹垚鍛樺彉閲忓繀欏昏鍦ㄥ叿浣撶殑cpp鏂囦歡涓繘琛屽畾涔夛紝綾諱腑鍑虹幇鐨勯潤鎬佹垚鍛樺彉閲忓彧琛ㄧず涓縐嶅0鏄庛?