1. sayfa (Toplam 1 sayfa)

bat dosyası ile ps1 dosyası yapmak

Gönderilme zamanı: 30 Eyl 2020, 12:26
gönderen feuer
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?

Re: bat dosyası ile ps1 dosyası yapmak

Gönderilme zamanı: 30 Eyl 2020, 20:40
gönderen velociraptor
Ben Vbs lerde tek tek ekliyorum . Varsa kolayı cidden bilmek isterim

Re: bat dosyası ile ps1 dosyası yapmak

Gönderilme zamanı: 01 Eki 2020, 06:18
gönderen feuer
araştırıyorum
bulabildiklerim bunlar, daha doğrusu anladığım kısımlar

Kod: Tümünü seç

more /e +3 input.txt > output.txt
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

Kod: Tümünü seç

(
echo Line1
echo Line2
...
echo Last Line
) > output.txt 
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

Re: bat dosyası ile ps1 dosyası yapmak

Gönderilme zamanı: 02 Eki 2020, 11:10
gönderen feuer
https://stackoverflow.com/questions/135 ... batch-file

ç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")"
)
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ı

Re: bat dosyası ile ps1 dosyası yapmak

Gönderilme zamanı: 02 Eki 2020, 14:52
gönderen velociraptor
Paylaşım için teşekürler, özel karakterler çokça kullanılıyor malesef

Re: bat dosyası ile ps1 dosyası yapmak

Gönderilme zamanı: 02 Eki 2020, 17:29
gönderen feuer
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

Re: bat dosyası ile ps1 dosyası yapmak

Gönderilme zamanı: 03 Eki 2020, 00:11
gönderen velociraptor
İnşallah , hayırlısı diyelim