Войти

Показать полную графическую версию : [решено] Запись названия файла в каждую строку


Knopppka
01-03-2013, 13:00
Подскажите, пожалуйста.

Есть папка с файлами - логами АТС. Один файл за один день. Но это, в принципе, не важно.
Необходимо сделать батник, который бы в каждую строку каждого файла записывал его название.
Такое возможно сделать? И если да, не могли бы вы помочь? Очень надо.

Iska
01-03-2013, 18:19
Knopppka, пример файла лога до, пример файла лога после записи. Достаточно пары десятков строк.

Knopppka
01-03-2013, 19:50
ats1-2011-03-18=00-00 - файл исходный
1 - файл с результатом, который нужно получить

В итоге я должна буду загнать данные в базу SQL, а только из названия файла можно получить информацию о номере АТС и годе

Iska
01-03-2013, 20:23
Knopppka, попробуйте так:
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1
set sDestFile=Out.txt
set sName=%~n1

if defined sSourceFile (
if exist "%sSourceFile%" (
if exist "%sDestFile%" del /f /q "%sDestFile%"
for /f "usebackq delims=" %%i in ("%sSourceFile%") do >>"%sDestFile%" echo %sName%%%i
) else (
echo Source file [%sSourceFile%] not found
)
) else (
echo Usage: %~nx0 ^<Source file^>
)

endlocal
exit /b 0

Исходный файл задаётся аргументом пакетного файла. Также можете просто перетащить исходный файл на пакетный.

Foreigner
01-03-2013, 21:01
Knopppka, Протестируйте такой вариант. Исходный файл можно "перетащить" на батник или задать параметром из командной строки:

@echo off

for %%i in ("%*") do (

for /f "tokens=*" %%j in (' type %%i') do 1>>"%~dp01.txt" echo %%~ni %%j

)

:: pause


1.txt будет рядом с батником

Knopppka
02-03-2013, 13:33
Iska, спасибо Вам огромное. Все работает так, как я и хотела. Буду теперь разбираться.

Foreigner, ничего не происходит, не пойму почему. Все равно, спасибо за помощь.




© OSzone.net 2001-2012