
[已解決]學·知討論用Bat輸出自身N行到M行到文本最后由 34205 于 -1-27 01:06如題,存在以下問題:1、論壇里面的格式大家都知道的,很多朋友們提問題就會先寫出一個樣本文本(要處理的文件內容),以及這個樣本要處理成怎么結果2、作為入門我都會去練這些樣板,并試用和消化各大大們的代碼,所以我需要建立這樣一個樣本,和一個代碼批處理3、手動新建文本文檔》》粘貼樣本》》命名為 Test_A.txt》》.... 這些手動操作都變得比較繁瑣4、題目目標:既然學Bat,那有沒有直接粘貼直接填寫代碼就可以練習的方法呢,實現粘貼樣本,同時也想有個記錄填寫代碼模版,以便歸類收藏5、擬解決思路:做一個Bat模版,有此批處理的功能,目標,知識點》》能最快的生成臨時文件夾臨時文件》》能最快的生成樣本文本》》粘貼代碼》》能有一個操作提示和清除臨時文件功能為此,參考論壇里面很多帖子,關鍵是解決:把Bat自身模版化,產出樣本和代碼先貼上一部分代碼(歌詞部分是示例的樣本,含空行 空格 特殊字符),接下來還有個,建立Bat模版,還未優化完成(這個想請大家有興趣的待我寫寫?)6、希望大家如果有更好的建議,一起討論
nclick="copycode($('code0'));">復制代碼
- @echo off
- Mode con: cols=34 lines=15
- :GOSet
- Set This_Path=%cd%
- MD Tempdir
- cd Tempdir
- Set TempDIRPath=%cd%
- Cls
- echo =======說明區========
- Echo.
- Echo [文本工具]
- Echo S-學習-BAT-BAT代碼-批處理實現-從N行到M行間文本輸出
- Echo.
- Echo 示例:將Bat自身N行到M行輸出到文本(含空格行 空行 特殊字符)....
- echo =============S34205==
- Echo.
- Ping -n 3 127.1>nul
- :StartDo
- Set DirOld=輸出Bat自身.txt
- Set DirNew=輸出N行到M行.txt
- copy %0 %TempDIRPath%%DirOld%
- Set DirOldName=%TempDIRPath%%DirOld%
- Set DirNewName=%TempDIRPath%%DirNew%
- set /a Startline=56
- Echo 起始行行號為:%Startline%
- set /a Endline=79
- Echo 終始行行號為:%Endline%
- (for /f delims= %%a in ('findstr /n .* %DirOldName%') do (
- for /f delims=: %%b in (%%a) do (
- set str=%%a
- setlocal enabledelayedexpansion
- set str=!str:*:=!
- if %%b geq %Startline% if %%b leq %Endline% echo,!str!
- endlocal
- )
- ))>%TempDIRPath%%DirNew%
- Echo.
- Echo OK,已經產生結果到%TempDIRPath%%DirNew%文件......
- Start Notepad.exe %DirNewName%
- Echo.
- ping -n 3 127.1>nul
- Goto Out
- :Out
- echo =======退出區=======
- Echo.
- Echo 測試完成,15秒后,退出BAT,清除臨時文件...........
- Ping -n 15 127.1>nul
- CD..
- RD /S /Q Tempdir
- ping -n 3 127.1>nul
- Exit /b
- Rem==========我是第56行===========
- 冰封的淚
- 如流星隕落|
- 跌碎了誰的思念
- 輪回之間
- 前塵已湮滅
- 夢中模糊容顏
- 昆侖巔 *
- 江湖遠 ^
- 花謝花開花滿天 $
- 嘆紅塵%
- 落朱顏^
- 天上人間 *
- 情如風
- 情如煙
- 琵琶一曲已千年
- 今生緣
- 來生緣 @
- 滄海桑田
- 成流年
- Rem==========我是第79行===========

