
探討ECHO;TAB若干退格字符將光標(biāo)多行回退與窗口列寬的關(guān)系最后由 [email protected] 于 -9-22 16:21本論壇有一帖:批處理將光標(biāo)退回原點(diǎn)http://www.bathome.net/redirect. ... ptid=7137&pid=71368闡述了光標(biāo)多行回退的一種方式, 并給出了一個(gè)回退行數(shù)和 退格字符 個(gè)數(shù)的公式我在 簡(jiǎn)體中文 64位 win 7 系統(tǒng)測(cè)試, 發(fā)現(xiàn):1. 在某些列寬 [MODE 命令的 COLS 參數(shù)(系統(tǒng)默認(rèn)值是 80)], 比如 一些對(duì) 8 余 1 的數(shù)41, 49, 57, 65, 73, 81,.. 我用某種測(cè)試代碼沒有找到讓光標(biāo)多行回退的方法2. batman 給出的公式并不適用于一些情況, 只是一些特定情形下可行.采用
方式 -- TAB 可以采用連續(xù) 2 個(gè)或者更多, 但此處暫時(shí)只研究 僅 1 個(gè) TAB當(dāng) COLS 對(duì) 8 的余數(shù)是 1 時(shí), 此處采用的方式不能將光標(biāo)回退到上面的行每多回退一行需退格數(shù) 是一個(gè)和 緩沖 區(qū)寬度[即 mode 命令的 COLS 參數(shù)] 以及光標(biāo)回退之前的水平坐標(biāo)[一行的最左邊為 0] 都相關(guān)的函數(shù)這個(gè)函數(shù)是 [光標(biāo)回退之前的水平坐標(biāo) 對(duì) 8 余數(shù)] 的增函數(shù);光標(biāo)回退之前的水平坐標(biāo) 以一個(gè)半角字符為 1 單位, 全角漢字字符占 2 個(gè)單位 當(dāng)回退之前光標(biāo)的水平坐標(biāo)是 0 時(shí), 即在一行的最左邊, 或者 水平坐標(biāo) 對(duì) 8 余 0 時(shí)每多回退一行需退格數(shù) 與 COLS 之間有如下公式:nclick="copycode($('code0'));">復(fù)制代碼
- echo;TAB若干退格
當(dāng)回退之前光標(biāo)的水平坐標(biāo)對(duì) 8 不是余 0 時(shí), 每多回退一行需退格數(shù) 需要更大的數(shù)字, 計(jì)算方式暫不明確根據(jù)上公式可計(jì)算得[當(dāng)回退之前光標(biāo)的水平坐標(biāo)是 0 時(shí), 即在一行的最左邊, 或者 水平坐標(biāo) 對(duì) 8 余 0 時(shí)]: COLS 在 [82, 88] 范圍時(shí), 每多回退一行需退格數(shù) 為 11COLS 在 [74, 80] 范圍時(shí), 每多回退一行需退格數(shù) 為 10COLS 在 [66, 72] 范圍時(shí), 每多回退一行需退格數(shù) 為 9COLS 在 [58, 64] 范圍時(shí), 每多回退一行需退格數(shù) 為 8...COLS 在 [18, 24] 范圍時(shí), 每多回退一行需退格數(shù) 為 3...寬 COLS = 80 時(shí)回退行0 指回退到 光標(biāo)回退之前 的所在行水平坐標(biāo) 0 位置回退行1 指回退到 回退行0 的上 1 行水平坐標(biāo) 0 位置回退行2 指回退到 回退行0 的上 2 行水平坐標(biāo) 0 位置回退行3 指回退到 回退行0 的上 3 行水平坐標(biāo) 0 位置...nclick="copycode($('code1'));">復(fù)制代碼
- 每多回退一行需退格數(shù) = ceil ( COLS / 8 )

