Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Google Sheet - Referire la textul...

De ce vor atația politicieni...

ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?
 Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...

Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...
 Sugestii plan casa

Experiente cu firme care cumpara ...

joc idem Half Life gratis

PC game stream catre Nvidia Shiel...
 Pompa de apa HEPU ?!

Vreau o masina electrica de tocat...

Cum ajunge remorca de tir inapoi ...

Alt "Utilizator nou" pe T...
 

C# - integrare .bat-uri

- - - - -
  • Please log in to reply
38 replies to this topic

#1
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Salutari!

Am inceput sa lucrez la un script, a iesit destul de bine si m-am gandit sa construiesc o aplicatie pe baza lui.
Am facut o mini aplicatie in Windows Forms, C#.

Cu C# am facut partea de user interaction, de genul: aparitie mesaje, interogari.
Am facut doar atat pentru ca doar atat stiu in C#. :D
Ce e mai important se executa tot din bat-ul scris anterior.

Din cate am inteles, as putea sa renunt la .bat si nu-l mai port peste tot dupa mine, sa rulez direct din codul de C# operatiile pe care le am in .bat. In definitiv e vorba de o conexiune ftp, de niste copieri de fisiere, stergeri, redenumiri, colectari de output, parsări, nimic extraordinar.

Acum intrebarea mea este: exista vreo posibilitate sa integrez codul din .bat in C# si sa-l recunoasca fara sa fac modificari majore? Sau ce am auzit eu cu privire la executia operatiilor din .bat in C# se refera de fapt la faptul ca orice se poate face in .bat se poate face si in C#, pur si simplu?

Multumesc!

#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Orice se poate face in .bat se poate face mult mai elegant in C#.

Daca tii neaparat, poti lansa .bat-ul din C#: https://msdn.microso...rocess(v=vs.110).aspx

Cum insa bat-ul e o mizerie pentru orice mai mult decat lansarea unei alte aplicatii, fa-ti linistit treaba din C#, mai inveti una alta.

#3
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003
Poti apela acel .bat cu Process.Start() si poti sa-l scrii inainte de apel. Sau poti cauta in .NET echivalente la ce ai in acel fisier si nu mai ai treba deloc insa echivalentele astea nu-s simple comenzi, ci clase ce trebuie instantiate, apelate metode etc.

Edited by neagu_laurentiu, 29 August 2016 - 19:39.


#4
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011

View Postdani.user, on 29 august 2016 - 19:36, said:

Orice se poate face in .bat se poate face mult mai elegant in C#.

Daca tii neaparat, poti lansa .bat-ul din C#: https://msdn.microso...rocess(v=vs.110).aspx

Cum insa bat-ul e o mizerie pentru orice mai mult decat lansarea unei alte aplicatii, fa-ti linistit treaba din C#, mai inveti una alta.
Pai asta fac deocamdata, am asa:
System.Diagnostics.Process.Start("MyBat.bat");

PS. Linkul respectiv nu-mi merge, imi apare "We're sorry...".

#5
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Linku e ok, forumul il taie. Copiaza-l manual cu atentie.

#6
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011

View Postneagu_laurentiu, on 29 august 2016 - 19:38, said:

Poti apela acel .bat cu Process.Start() si poti sa-l scrii inainte de apel. Sau poti cauta in .NET echivalente la ce ai in acel fisier si nu mai ai treba deloc insa echivalentele astea nu-s simple comenzi, ci clase ce trebuie instantiate, apelate metode etc.
Am inteles acum, eu credeam ca exista vreo comanda de compatibilitate sau ceva asa, dar pare-se ca trebuie mai mult de atat. :))
In .bat am scris 5 comenzi si mi-am facut treaba, ce zici tu e treaba de OOP...

#7
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Nu te opreste nimeni nici sa apelezi din C# executabilele ce le apelai din .bat

#8
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,550
  • Înscris: 06.03.2016
Poti rula fisierul .bat din Resources folosind GetManifestResourceStream .

Edited by red46, 29 August 2016 - 20:07.


#9
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
In .bat nu apelez executabile, am precizat in postul 1 ce fac in .bat: " e vorba de o conexiune ftp, de niste copieri de fisiere, stergeri, redenumiri, colectari de output, parsări ".
Si deci, pentru chestiunile amintite, am nevoie de mai mult de un simplu apel. :(

View Postred46, on 29 august 2016 - 20:06, said:

Poti rula fisierul .bat din resursele aplicatiei.
Nu inteleg la ce te referi prin "resursele aplicatiei".
Aplicatia imi merge perfect, singura chestie care nu-mi place acum este ca trebuie sa copii pe langa aplicatia in sine (.exe, s.a.m.d.) si acel .bat.
Plus ca in felul asta oricine va putea sa-mi vada codul din spate.

Asta incercam sa evit acum, sa fac cumva sa am si codul din .bat in interiorul aplicatie, in C#.

#10
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,550
  • Înscris: 06.03.2016

View Postvlad29marko, on 29 august 2016 - 20:06, said:

In .bat nu apelez executabile, am precizat in postul 1 ce fac in .bat: " e vorba de o conexiune ftp, de niste copieri de fisiere, stergeri, redenumiri, colectari de output, parsări ".
Si deci, pentru chestiunile amintite, am nevoie de mai mult de un simplu apel. Posted Image
Posteaza aici continutul fisierului .bat . Doar nu o fi vrun secret de stat.

View Postvlad29marko, on 29 august 2016 - 20:08, said:

In .bat nu apelez executabile, am precizat in postul 1 ce fac in .bat: " e vorba de o conexiune ftp, de niste copieri de fisiere, stergeri, redenumiri, colectari de output, parsări ".
Si deci, pentru chestiunile amintite, am nevoie de mai mult de un simplu apel. Posted Image


Nu inteleg la ce te referi prin "resursele aplicatiei".
Aplicatia imi merge perfect, singura chestie care nu-mi place acum este ca trebuie sa copii pe langa aplicatia in sine (.exe, s.a.m.d.) si acel .bat.
Plus ca in felul asta oricine va putea sa-mi vada codul din spate.

Asta incercam sa evit acum, sa fac cumva sa am si codul din .bat in interiorul aplicatie, in C#.
La proprietatile fisierului proiectului ai tab-ul Resources. Foloseste-l.

Edited by red46, 29 August 2016 - 20:11.


#11
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Continutul de baza al .bat-ului, am incercat sa iau cateva comenzi reprezentative:

@echo off
copy XX.txt YY.txt >NUL
set /p ip_adress=<ip_adress.txt
echo user anonymous> ftpcommands.dat
echo anonymous>> ftpcommands.dat
echo bin>> ftpcommands.dat
echo cd Windows>> ftpcommands.dat
echo delete YY.txt>> ftpcommands.dat
ping 127.0.0.1 -n 1 > nul
echo put YY.txt>> ftpcommands.dat
echo disconnect>> ftpcommands.dat
echo quit>> ftpcommands.dat
ftp -n -s:ftpcommands.dat %ip_adress%
del ftpcommands.dat
del YY.txt

In portiunea asta creez o copie a unui fisier local si il pun in locul unui alt fisier (cu acelasi nume) prin ftp.

#12
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003

View Postvlad29marko, on 29 august 2016 - 20:08, said:

Plus ca in felul asta oricine va putea sa-mi vada codul din spate.
Ti-ai si gasit loc de ascunzatoare, in .NET ! Pai sunt decompilatoare la tot pasul, oricine-ti vede tot codul C#. Obfuscatoarele sunt jucarii.

#13
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,550
  • Înscris: 06.03.2016

View Postneagu_laurentiu, on 29 august 2016 - 20:12, said:

Ti-ai si gasit loc de ascunzatoare, in .NET ! Pai sunt decompilatoare la tot pasul, oricine-ti vede tot codul C#. Obfuscatoarele sunt jucarii.
corect.
mai ales ca acum e open-source..

View Postvlad29marko, on 29 august 2016 - 20:12, said:

Continutul de baza al .bat-ului, am incercat sa iau cateva comenzi reprezentative:

@echo off
copy XX.txt YY.txt >NUL
set /p ip_adress=<ip_adress.txt
echo user anonymous> ftpcommands.dat
echo anonymous>> ftpcommands.dat
echo bin>> ftpcommands.dat
echo cd Windows>> ftpcommands.dat
echo delete YY.txt>> ftpcommands.dat
ping 127.0.0.1 -n 1 > nul
echo put YY.txt>> ftpcommands.dat
echo disconnect>> ftpcommands.dat
echo quit>> ftpcommands.dat
ftp -n -s:ftpcommands.dat %ip_adress%
del ftpcommands.dat
del YY.txt

In portiunea asta creez o copie a unui fisier local si il pun in locul unui alt fisier (cu acelasi nume) prin ftp.
il poti transforma intr-un .exe cu ajutorul unui converter.
dar cum a spus un coleg mai sus.. in 2 minute si un copil de 5 ani iti poate decompila programul.

Edited by red46, 29 August 2016 - 20:16.


#14
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003
Ca e open nu are importanta, si GCC e la fel dar poti sa-i faci reverse la nivel inalt ? Nu.

Sunt si in .NET terte aplicatii de securizare dar costa cat inca o licenta de VS.

Edited by neagu_laurentiu, 29 August 2016 - 20:18.


#15
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011

View Postneagu_laurentiu, on 29 august 2016 - 20:12, said:

Ti-ai si gasit loc de ascunzatoare, in .NET ! Pai sunt decompilatoare la tot pasul, oricine-ti vede tot codul C#. Obfuscatoarele sunt jucarii.
Nu, nu e ca si cand fac ceva nemaiauzit si nu vreau sa imi fure careva ideile de geniu, era doar ideea ca e aiurea sa cari scripturile dupa tine, orice user putand sa-l modifice, sa-l deschida and so on.

@red46
In schimb ideea cu convertirea bat-urilor in exe-uri mi se pare ok.
As investiga si treaba cu resursele, dar e foarte greu sa tin pasul cu tine, iti modifici constant mesajele, nu mai stiu unde sa ma uit. Posted Image))

Edited by vlad29marko, 29 August 2016 - 20:30.


#16
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007

View Postvlad29marko, on 29 august 2016 - 20:08, said:

In .bat nu apelez executabile

ping si ftp, care fac grosul muncii din acel bat, sunt executabile

#17
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003

View Postvlad29marko, on 29 august 2016 - 20:29, said:

era doar ideea ca e aiurea sa cari scripturile dupa tine, orice user putand sa-l modifice, sa-l deschida and so on.
Poti sa-l tii in .exe, il pui pe disc la apelare apoi il stergi. Asta daca nu vrei sa apelezi tu fiecare aplicatie, sa redirectezi output-ul daca parsezi asa ceva etc.

Edited by neagu_laurentiu, 29 August 2016 - 20:39.


#18
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
La tab-ul asta te referi?

View Postdani.user, on 29 august 2016 - 20:33, said:

ping si ftp, care fac grosul muncii din acel bat, sunt executabile
Interesant, nu stiam. Si as putea sa le apelezi cu niste parametri ai mei, direct in C#?

Attached Files



Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate