#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