-2

Мне нужна помощь, чтобы написать командный файл, который может заполнить пробел.

Файл как это:

~E-00001~|~E-0000001.pdf~|~C:\2014\text\~
~E-00002~|~~|~~
~E-00003~|~~|~~
~E-00004~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00005~|~~|~~
~E-00006~|~~|~~
~E-00007~|~E-0000003.pdf~|~C:\2014\text\03~
~E-00008~|~~|~~
~E-00009~|~~|~~

Будет выглядеть так:

~E-00001~|~E-0000001.pdf~|~C:\2014\text\~
~E-00002~|~E-0000001.pdf~|~C:\2014\text\~
~E-00003~|~E-0000001.pdf~|~C:\2014\text\~
~E-00004~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00005~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00006~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00007~|~E-0000003.pdf~|~C:\2014\text\03~
~E-00008~|~E-0000003.pdf~|~C:\2014\text\03~
~E-00009~|~E-0000003.pdf~|~C:\2014\text\03~

Благодарю вас!!!

1 ответ1

1

Я не совсем уверен в вашем требовании (см. Мой комментарий к вашему OP), но моя интуиция говорит, что вы, вероятно, хотите командный файл, такой как:

добавленное примечание barlop- jimbob обнаружило, что этот паттерн или может быть достигнут заменой двойных тильд.

@ECHO OFF
SETLOCAL

set LAST_A=
set LAST_B=
set LAST_C=

FOR /f "tokens=1,2,3 delims=|" %%A IN (%1) DO CALL :write %%A %%B %%C
GOTO :eof

:write
SET A=%1
SET B=%2
SET C=%3

IF "{%A%}"=="{~~}" SET A=%LAST_A%
IF "{%B%}"=="{~~}" SET B=%LAST_B%
IF "{%C%}"=="{~~}" SET C=%LAST_C%

ECHO %A%^|%B%^|%C%

SET LAST_A=%A%
SET LAST_B=%B%
SET LAST_C=%C%
GOTO :eof

... с которым вы бы позвонили:

x:\pathto\process_file.cmd X:\pathto\inputfile > X:\pathto\outputfile

Проверьте это тщательно, хотя ...

Добавил барлоп

J:\>type a.a
~E-00001~|~E-0000001.pdf~|~C:\2014\text\~
~E-00002~|~~|~~
~E-00003~|~~|~~
~E-00004~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00005~|~~|~~
~E-00006~|~~|~~
~E-00007~|~E-0000003.pdf~|~C:\2014\text\03~
~E-00008~|~~|~~
~E-00009~|~~|~~
J:\>a.bat a.a
~E-00001~|~E-0000001.pdf~|~C:\2014\text\~
~E-00002~|~E-0000001.pdf~|~C:\2014\text\~
~E-00003~|~E-0000001.pdf~|~C:\2014\text\~
~E-00004~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00005~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00006~|~E-0000002.pdf~|~C:\2014\text\02~
~E-00007~|~E-0000003.pdf~|~C:\2014\text\03~
~E-00008~|~E-0000003.pdf~|~C:\2014\text\03~
~E-00009~|~E-0000003.pdf~|~C:\2014\text\03~

J:\>  
can do J:\>a.bat a.a >a.b   thus giving that output in a.b

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .