Оконный пакетный скрипт для усечения начальных нулей в текстовом файле и записи в новый файл

#windows #batch-file #cmd #batch-processing #batch-updates

#Windows #пакетный файл #cmd #пакетная обработка #пакетные обновления

Вопрос:

Пожалуйста, помогите с пакетным скриптом Windows, который удалит начальные нули в текстовом файле и запишет в новый файл без нулей.

Формат входного файла

 0265952076
0263097520
0578361217
0266127789
0505834686
0578361190
  

Формат вывода

 265952076
263097520
578361217
266127789
505834686
578361190
  

Спасибо.

Комментарии:

1. я пробовал с помощью скрипта, но могу записать только последний из файла в новый файл. @ECHO OFF amp;SETLOCAL ENABLEDELAYEDEXPANSION :: Извлеките только первые 5 символов ДЛЯ /f «delims=» %%a В (%1) DO ( УСТАНОВИТЕ «var1=%%a» ) ECHO %var1: ~ 1,9%>max_test.txt

2. поместите последнее ) в самый конец (после max_test.txt ) для включения echo в цикл.

Ответ №1:

 @echo off
(for /f "tokens=* delims=0" %%a in (inputFile) do echo(%%a)>outputFile
  

При этом используется возможность for /f разбивать строку на токены, удаляя разделители, используемые для разбиения. Поскольку 0 используется в качестве разделителя, но мы запрашиваем всю строку только в одном токене, for будут отбрасываться начальные разделители, пока не будет найден первый токен, в результате чего начальные нули будут удалены.

Ответ №2:

Для этого используется вспомогательный пакетный файл под названием repl.bat (автор dbenham) — загрузить с: https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

Поместите repl.bat в ту же папку, что и пакетный файл, или в папку, которая находится по пути.

 @echo off
type file.txt | repl "^0*" "" >newfile.txt 
pause