PDA

Показать полную графическую версию : Как объединить два скрипта в один?


temphard
08-12-2019, 02:17
Здравствуйте. Я использую последовательно два скрипта.

Первый, в котором удаляются все строки, кроме тех, где содержится "slovo"
@echo off
set fname=file1.txt
findstr /c:"slovo" %fname% >log.tmp
del %fname%
move log.tmp %fname%

Второй, который удаляет первые 6 символов в каждой строке
@echo off
SetLocal enabledelayedexpansion
set File=file1.txt
set nn=6
set Out=file2.txt
For /F "usebackq delims=" %%A In ("%File%") Do (
Set "String=%%A"& Set "String=!String:~%nn%!"
Echo.!String!>>%out%
)
exit /b
Можно ли эти скрипты объединить в один, чтобы не запускать два батника. А также чтобы в конечном результате file2.txt перезаписывался, а не дописывался.

DJ Mogarych
08-12-2019, 09:35
powershell -command "((gc C:\temp\1.txt) -match 'slovo').Substring(6) > C:\temp\2.txt"

YuS_2
08-12-2019, 09:55
Можно ли эти скрипты объединить в один, чтобы не запускать два батника. А также чтобы в конечном результате file2.txt перезаписывался, а не дописывался. »
powershell
$file = 'file1.txt'
$arr = gc $file -enc OEM
$arr|?{$_ -notmatch 'slovo'}|%{$_ -replace '^.{6}'}|out-file $file -enc OEM

megaloman
08-12-2019, 10:27
Первый файл останется неизменным@Echo Off
Set "FileIn=Z:\Box_In\1.txt"
Set "FileOut=Z:\Box_Out\2.txt"
Set "Word=sLoVo"
Set /A N=6

>"%FileOut%" (For /F "usebackq delims=" %%s In (`2^>nul FINDSTR /I /C:"%Word%" "%FileIn%"`) Do (
Set "String=%%s"
(Call Echo %%String:~%N%%%)
))
Exit /B 0


Первый файл будет содержать только выбранные строки, как в Ваших предыдущих скриптах@Echo Off
Set "FileIn=Z:\Box_In\1.txt"
Set "FileOut=Z:\Box_Out\2.txt"
Set "Word=sLoVo"
Set /A N=6

2>nul Del "%FileIn%.tmp"
>"%FileOut%" (For /F "usebackq delims=" %%s In (`2^>nul FINDSTR /I /C:"%Word%" "%FileIn%"`) Do (
Set "String=%%s"
>>"%FileIn%.tmp" (Echo %%s)
(Call Echo %%String:~%N%%%)
))
>nul Move /Y "%FileIn%.tmp" "%FileIn%"
Exit /B 0Выделены отличия первого скрипта от второго

temphard
09-12-2019, 10:13
Первый файл останется неизменным »
Первый файл будет содержать только выбранные строки, как в Ваших предыдущих скриптах »
Шикарно! Спасибо.
P.S. За powershell я тоже благодарен, но в данном случае мне именно батник нужен.

DJ Mogarych
09-12-2019, 11:17
temphard, код, который я привёл - это для батника.




© OSzone.net 2001-2012