關於電腦上的知識, 如 Linux, Perl, C/C++, C# …

2009年11月22日 星期日

請問如何 批次執行 Notepad的資料修改?

問題來源:

問題內容:
因為工作需要. 每月須要執行45個相同格式的.txt檔(即45次)

檔案由別單位按月提供, 格式為文字檔, 第1列為欄名, 第2列起為資料列約300~500列(不固定列數, 但所有資料皆依時間由小至大排列),

每個檔案每次需要做以下動作
* 保留第1列, 以及檔案最後4列(最近4期資料), 其他列刪除.
* 另存該檔案

請問一下批次檔如何寫? (假設原始檔案 file01.txt, file02.txt, ..., file45.txt)
請教高手..

問題答案:
擔心複製後貼上會出錯?可以直接下載已寫好的檔案,這裡下載,(如何下載:請參考這裡

使用方法:
NextMonth    c:\2009-11   c:\2009-12


[NextMonth.cmd]
@echo off
setLocal ENABLEEXTENSIONS

if $%1$ == $$ goto showUsage
if $%2$ == $$ goto showUsage
if not exist %1 (
dir /b %1
echo.
goto showUsage
)

if not exist %2 md %2

for %%F in (%1\*.txt) do (
head -1 %%F > %2\%%~nxF
tail -4 %%F >> %2\%%~nxF
)

goto end

:showUsage
echo Create Next Month Report
echo =====================================================================================
echo Usage:
echo.
echo %0 [drive:]this_month_report_path [drive:]next_month_report_path
echo.

:end
endlocal

補充說明:
「head.exe」、「tail.exe」原本是 unix 上的指令,現在有善心人士把它們移植到 Windows 平台上,您可以在「NextMonth.zip」中找到,或者到這下載:http://sourceforge.net/projects/unxutils/


沒有留言:

張貼留言

LinkWithin

Blog Widget by LinkWithin