Показать полную графическую версию : [решено] дописать строчки
spilberg
10-07-2009, 01:13
Нужен батник который сможет заменить в файле my.txt все пробелы на - и дописать вначале и в конце строчки несколько слов и вконце файла несколько строк.
Например фаил my.txt:
aaaaaaaa aaaaaaaaa
bbbbbbbb bbbbbbbbb
cccccccccc cccccccccccc
Надо чтоб он стал таким:
my aaaaaaaa-aaaaaaaaa you
my bbbbbbbb-bbbbbbbbb you
my cccccccccc-cccccccccccc you
hello
hi
Очень надо помогите пожалуйста если это возможно ((((
Попробуйте что-то наподобие такого:
@echo off
setlocal enableextensions enabledelayedexpansion
set strSourceFileName=%~1
set strTextBefore=%~2
set strTextAfter=%~3
set strFinishFileName=%~4
set strTempFileName=%temp%\tmp%random%.tmp
if exist "%strTempFileName%" del "%strTempFileName%"
if defined strSourceFileName (
if exist "%strSourceFileName%" (
for /f "tokens=* delims=" %%i in (!strSourceFileName!) do (
set strLine=%%i
echo %strTextBefore%!strLine: =-!%strTextAfter%>>"%strTempFileName%"
)
if exist "%strFinishFileName%" copy /b "%strTempFileName%"+"%strFinishFileName%" "%strTempFileName%" >nul
move /y "%strTempFileName%" "%strSourceFileName%" >nul
)
) else (
echo Using: %~nx0 ^<File name^> ^<Text before^> ^<Text after^> ^<File name with finish text^>
)
endlocal
exit /b 0
Вызов пакетного файла:
mycmd.cmd my.txt "my " you" finishtext.txt
где «finishtext.txt» — текстовый файл, содержащий финальные строки:
hello
hi
Maza Faka
10-07-2009, 07:35
spilberg
Быстро, эффективно и без проблем со спец. символами, если использовать SED.EXE (http://gnuwin32.sourceforge.net/packages/sed.htm)
@Echo Off
Type test.txt | Sed "s/ /-/g" | Sed "s/.*/my & you/g">result.txt
Echo hello>>result.txt
Echo hi>>result.txt
Devils0411
19-07-2009, 19:16
Возможно ли средствами пакетного файла сделать следующее:
при команде ipconfig, выдает адрес компьютера. Как этот адрес скопировать и заменить в файле winnt.sif?
[data]
AutoPartition=0
MsDosInitiated=1
AutomaticUpdates="yes"
UnattendedInstall="Yes"
floppyless="1"
LocalSourceOnCD=1
OriSrc="\\192.168.10.11\NETBOOT\WINXPSP3\INSTALL\I386"
OriTyp="4"
Devils0411, через WMI - без замены, но с добавлением в конец:
@Echo On
Set WSIF=C:\TEST\winnt.sif
For /F "Tokens=2 Delims=={,} " %%i In ('WMIC NICCONFIG Where IPEnabled^=True Get IPAddress /Value^') Do Set $IP=%%~i
For /F "Tokens=2 Delims==" %%i In ('FindStr /IB "OriSrc=" "%WSIF%"') Do For /F "Tokens=1* Delims=\" %%a In (%%i) Do Set $V="\\%$IP%\%%b"
FindStr /VIB "OriSrc=" "%WSIF%" >"%TEMP%\%~n0.tmp"
Echo.>>"%TEMP%\%~n0.tmp"
Echo [data]>>"%TEMP%\%~n0.tmp"
Echo OriSrc=%$V%>>"%TEMP%\%~n0.tmp"
If Exist "%TEMP%\%~n0.tmp" Copy /Y "%TEMP%\%~n0.tmp" "%WSIF%"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.