スタックオーバーフローは、フリーコード書き込みサービスではありません。次回はまず自分で何かを試してみてください。
この小さなバッチスクリプトの3行目でファイル名とパスを変更してください。
@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 /?
もUsing command redirection operatorsに関するMicrosoftの記事を参照してください。
**本当に**まだMS-DOSを使用していますか? –