[BAT SCRIPT] Bir Dosyadan Belirli Satırları Çıktı Almak
- feuer
- Terabyte2
- Mesajlar: 4120
- Kayıt: 24 Eyl 2020, 01:33
- cinsiyet: Erkek
- Teşekkür etti: 127 kez
- Teşekkür edildi: 200 kez
[BAT SCRIPT] Bir Dosyadan Belirli Satırları Çıktı Almak
umarım doğru başlıkta soruyorumdur
54 satırlık bir powershell scriptim var örnek.ps1
bunu bat dosyası içinden çalıştırıyorum şu şekilde
PowerShell.exe -Command "c:\cat\örnek.ps1"
ancak şöyle birşey düşündüm
bu ps1 dosyası diskte olmasa
bu 54 satırı bat dosyası içinden,
1 - çalıştırdığımda oluşturacak ,
2 - çalıştıracak,
3 - daha sonrada silecek şekilde nasıl hazırlayabilirim
2. ve 3. şık ile sorunum yok
1. şık için
echo "codeline1" > örnek.ps1
echo "codeline2" > örnek.ps1
echo "codeline3" > örnek.ps1
.
.
.
echo "codeline54" > örnek.ps1
şeklinde 54 satıra tek tek eklemeden, scriptin başladığı yerden bittiği yere kadar alacak bir komut ile yapabilir miyim?
bilginiz var mı bu konuda?
54 satırlık bir powershell scriptim var örnek.ps1
bunu bat dosyası içinden çalıştırıyorum şu şekilde
PowerShell.exe -Command "c:\cat\örnek.ps1"
ancak şöyle birşey düşündüm
bu ps1 dosyası diskte olmasa
bu 54 satırı bat dosyası içinden,
1 - çalıştırdığımda oluşturacak ,
2 - çalıştıracak,
3 - daha sonrada silecek şekilde nasıl hazırlayabilirim
2. ve 3. şık ile sorunum yok
1. şık için
echo "codeline1" > örnek.ps1
echo "codeline2" > örnek.ps1
echo "codeline3" > örnek.ps1
.
.
.
echo "codeline54" > örnek.ps1
şeklinde 54 satıra tek tek eklemeden, scriptin başladığı yerden bittiği yere kadar alacak bir komut ile yapabilir miyim?
bilginiz var mı bu konuda?
En son feuer tarafından 18 Eyl 2021, 12:37 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
- velociraptor
- Yottabyte4
- Mesajlar: 46466
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4588 kez
- Teşekkür edildi: 3904 kez
Re: bat dosyası ile ps1 dosyası yapmak
Ben Vbs lerde tek tek ekliyorum . Varsa kolayı cidden bilmek isterim
- feuer
- Terabyte2
- Mesajlar: 4120
- Kayıt: 24 Eyl 2020, 01:33
- cinsiyet: Erkek
- Teşekkür etti: 127 kez
- Teşekkür edildi: 200 kez
Re: bat dosyası ile ps1 dosyası yapmak
araştırıyorum
bulabildiklerim bunlar, daha doğrusu anladığım kısımlar
bu 3 yazan yere verdiğin rakam ile dosyanın içinde oraya kadar olan bölümü es geçiyor (skip) yani 4üncü satırdan başlatıyor output.txt yi
bu da her satıra echo giriyoruz ancak output.txt scriptin en sonuna bir kere yazıyoruz
bunları zaten biliyorsundur, more komutunun böyle kullanılacağı aklıma gelmezdi araştırmasam
hazır bat dosyası buldum bir tane de, komut şeklinde giriyorsun başlangıç ve bitiş satırını çıktı veriyor ona bakıcam bugün boş olduğumda
bulabildiklerim bunlar, daha doğrusu anladığım kısımlar
Kod: Tümünü seç
more /e +3 input.txt > output.txt
Kod: Tümünü seç
(
echo Line1
echo Line2
...
echo Last Line
) > output.txt
bunları zaten biliyorsundur, more komutunun böyle kullanılacağı aklıma gelmezdi araştırmasam
hazır bat dosyası buldum bir tane de, komut şeklinde giriyorsun başlangıç ve bitiş satırını çıktı veriyor ona bakıcam bugün boş olduğumda
- feuer
- Terabyte2
- Mesajlar: 4120
- Kayıt: 24 Eyl 2020, 01:33
- cinsiyet: Erkek
- Teşekkür etti: 127 kez
- Teşekkür edildi: 200 kez
Re: bat dosyası ile ps1 dosyası yapmak
https://stackoverflow.com/questions/135 ... batch-file
çokça gezdim bu konu ile ilgili en anlaşılabilir ve uygulanabilir bu sayfayı buldum
bu script ile 3. ve 7. satırlar arasını alabiliyoruz ancak
boş satırlar atlanıyor ve bir sonraki satır çıktıya dahil ediyor
özel karakterler ile sorunluyuz
yani basit sayılar ve isimler olan satırları alıyor bu script ancak >< gibi özel karakterlerde sıkıntılı
çokça gezdim bu konu ile ilgili en anlaşılabilir ve uygulanabilir bu sayfayı buldum
Kod: Tümünü seç
@Echo OFF
del /q output.txt
Set "File=input.txt"
Set /A "Start_Line=3"
Set /A "End_Line=7"
For /F "Tokens=*" %%# In ('Type "%FILE%"') DO (
Call Set /A "Line+=1"
CMD /C "IF %%LINE%% GEQ %Start_Line% IF %%LINE%% LEQ %END_Line% (Echo %%#>>"Output.txt")"
)
boş satırlar atlanıyor ve bir sonraki satır çıktıya dahil ediyor
özel karakterler ile sorunluyuz
yani basit sayılar ve isimler olan satırları alıyor bu script ancak >< gibi özel karakterlerde sıkıntılı
- velociraptor
- Yottabyte4
- Mesajlar: 46466
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4588 kez
- Teşekkür edildi: 3904 kez
Re: bat dosyası ile ps1 dosyası yapmak
Paylaşım için teşekkürler, özel karakterler çokça kullanılıyor malesef
- feuer
- Terabyte2
- Mesajlar: 4120
- Kayıt: 24 Eyl 2020, 01:33
- cinsiyet: Erkek
- Teşekkür etti: 127 kez
- Teşekkür edildi: 200 kez
Re: bat dosyası ile ps1 dosyası yapmak
olayın mantığını anladım,
ayrıntıları anlamaya çalışıyorum
birkaç değişiklik ile özel karakter sorununu çözülüyor sanırım
vaktim oldukça bu konu ile ilgilenicem
özel karakter ve boş satır sorununu da çözünce paylaşırım
ayrıntıları anlamaya çalışıyorum
birkaç değişiklik ile özel karakter sorununu çözülüyor sanırım
vaktim oldukça bu konu ile ilgilenicem
özel karakter ve boş satır sorununu da çözünce paylaşırım
- velociraptor
- Yottabyte4
- Mesajlar: 46466
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4588 kez
- Teşekkür edildi: 3904 kez
- feuer
- Terabyte2
- Mesajlar: 4120
- Kayıt: 24 Eyl 2020, 01:33
- cinsiyet: Erkek
- Teşekkür etti: 127 kez
- Teşekkür edildi: 200 kez
Re: bat dosyası ile ps1 dosyası yapmak
Arkadaşlar bu kodlar bana ait değil stackoverflow.com da benzer konular ilgili bulduklarım ve tenforumsta açtığım başlıktan gelenler ile derlediğim örnekler, işine yarayan olabilir.
Bir dosya içerisinden belli satırları almak için kullanabilirsiniz.
1. script özel karakterlerde hata veriyor. 2. script satır değerlerini "" arasında veriyor. 3. script özel karakter içeren satırlarıda sorunsuz alıyor.
Get_Specific_Lines_from_a_File_A.bat
Get_Specific_Lines_from_a_File_B.bat
Get_Specific_Lines_from_a_File_C.bat
input.txt
outputA.txt
outputB.txt
outputC.txt
Bir dosya içerisinden belli satırları almak için kullanabilirsiniz.
1. script özel karakterlerde hata veriyor. 2. script satır değerlerini "" arasında veriyor. 3. script özel karakter içeren satırlarıda sorunsuz alıyor.
Get_Specific_Lines_from_a_File_A.bat
Kod: Tümünü seç
@Echo OFF
del /q outputA.txt
Set "File=input.txt"
Set /A "Start_Line=3"
Set /A "End_Line=7"
For /F "Tokens=*" %%# In ('Type "%FILE%"') DO (
Call Set /A "Line+=1"
CMD /C "IF %%LINE%% GEQ %Start_Line% IF %%LINE%% LEQ %END_Line% (Echo %%#>>"outputA.txt")"
)
Kod: Tümünü seç
@Echo OFF
del /q outputB.txt
Set "File=input.txt"
Set /A "Start_Line=3"
Set /A "End_Line=7"
For /F "Tokens=* delims=" %%# In ('Type "%FILE%"') DO (
Set /A "Line+=1"
CALL :READ_LINES "%%#"
)
:READ_LINES
(IF %LINE% GEQ %Start_Line% IF %LINE% LEQ %END_Line% (Echo %*>>"outputB.txt") ELSE (GOTO:END)) & GOTO:EOF
:END
Exit
Kod: Tümünü seç
@echo off
set file_to_read=input.txt
set /a start_line=3
set /a end_line=7
set outfile=outputC.txt
set counter=1
del /q %outfile%
break > %outfile%
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=*" %%A in (%file_to_read%) do (
if !counter! GEQ !start_line! (
echo %%A
echo %%A >> !outfile!
)
set /A counter=!counter!katılıyorum
if !counter! GEQ !end_line! (
goto :endLoop
)
)
:endLoop
Kod: Tümünü seç
one
two
three
<four
five
six
seven
eight
nine
ten
Kod: Tümünü seç
three
five
six
seven
Kod: Tümünü seç
"three"
"<four"
"five"
"six"
"seven"
Kod: Tümünü seç
three
<four
five
six
- velociraptor
- Yottabyte4
- Mesajlar: 46466
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4588 kez
- Teşekkür edildi: 3904 kez