2016-03-29 43 views
0

任何人都可以幫助我如何追加「零」,如果有從下面的txt文件輸出單一的數字日期/時間:如何在文本文件中的單個數字日期和時間值中插入前導「零」?

C|000001|56600|MMB-W1S0033|R|||||16-3-2|9:35:1| 
P|000001|56600|MMB-W1S0033||||||16-3-2|9:35:2| 
C|000001|56600|MMB-W1S0210|R|||||16-3-2|9:35:3| 
P|000001|56600|MMB-W1S0210||||||16-3-2|9:35:4| 

更改下面變成什麼?

C|000001|56600|MMB-W1S0033|R|||||16-03-02|09:35:01| 
P|000001|56600|MMB-W1S0033||||||16-03-02|09:35:02| 
C|000001|56600|MMB-W1S0210|R|||||16-03-02|09:35:03| 
P|000001|56600|MMB-W1S0210||||||16-03-02|09:35:04| 
+2

你真的**還在使用MS-DOS嗎? –

回答

1

堆棧溢出不是一個免費的代碼寫入服務。下次請先自己嘗試一下。

請修改此小批處理腳本第三行的文件名和路徑。

@echo off 
setlocal EnableDelayedExpansion 
set "InputFile=C:\Temp\TestFile.txt" 
if not exist "%InputFile%" goto :EOF 

set "TempFile=%TEMP%\TestFile.tmp" 
if exist "%TempFile%" del "%TempFile%" 

for /F "usebackq delims=" %%I in ("%InputFile%") do (
    set "Line=%%I" 
    if "!Line:~-3,1!" == ":" set "Line=!Line:~0,-2!0!Line:~-2!" 
    if "!Line:~-6,1!" == ":" set "Line=!Line:~0,-5!0!Line:~-5!" 
    if "!Line:~-9,1!" == "|" set "Line=!Line:~0,-8!0!Line:~-8!" 
    if "!Line:~-12,1!" == "-" set "Line=!Line:~0,-11!0!Line:~-11!" 
    if "!Line:~-15,1!" == "-" set "Line=!Line:~0,-14!0!Line:~-14!" 
    if "!Line:~-18,1!" == "|" set "Line=!Line:~0,-17!0!Line:~-17!" 
    echo !Line!>>"%TempFile%" 
) 

move /Y "%TempFile%" "%InputFile%" 
endlocal 

這個批處理文件將只檢查在相對於線的端部的特定位置的字符等於一個比較,並且預期字符和插入一個前導零,如果不是這種情況,因爲的日期/時間值右排隊排名只有1位數。

爲了解所使用的命令及其工作方式,請打開命令提示符窗口,在其中執行以下命令,並仔細閱讀爲每個命令顯示的所有幫助頁面。

  • del /?
  • echo /?
  • endlocal /?
  • for /?
  • goto /?
  • if /?
  • move /?
  • set /? ......這裏最重要的是瞭解替換。
  • setlocal /?

而且還請參閱Microsoft文章關於Using command redirection operators

+0

嗨mofi ..真的感謝您的及時幫助,它按預期的方式工作...老實說,我不是很好的DOS批處理編程:( – cyberjan

相關問題