Eliminare linie in fisier creat cu un .bat
Last Updated: Jun 26 2021 12:05, Started by
colombo2003
, Jun 25 2021 22:16
·
0
#1
Posted 25 June 2021 - 22:16
Salutare
Doresc sa scriu ceva ce preiau de la tastatura, din linia de comanda, intr-un fisier text. Insa ma lovesc de aceeasi treaba, si atunci am facut cel mai simplu test, dar nici asta nu se comporta cum as vrea. @ echo off echo test > numefisier.txt Ruland acest .bat, fisierul se creeaza, scrie test in el, dar fisierul are 2 linii (pe prima linie dupa test este crlf si inca o a doua linie vida. As vrea ca in fisier sa am doar cuvantul test (doar 4 caractere, fara nimic altceva dupa, spatiu sau mai stiu eu ce), pe o singura linie. Tot ce am incercat de pe net nu a functionat. Ce gresesc? Cum pot sa fac asta? Multumesc |
#2
Posted 25 June 2021 - 23:37
Adica tu a un enter la sfarsit si vrei sa scapi de el.
Altfel, un fisier text va contine si codul ascii 26 de end of file la sfarsit, asta o face dos-ul windowsul si apelurile sistem care lucreaza pe fisiere text, n-ai ce-i face. Iar enterul de la sfarsit e bagat de outputul comenzii ce vrei s-p redirectionezi din consola catre fisier. De exemplu comanda echo, baga un enter la final. Un fisier text cu oar 4 caractere, va contine 5 impreuna cu marcajul EOF. |
#3
Posted 26 June 2021 - 06:41
Mai intai ca nu obtii un fisier cu doua linii, ci cu una singura. Terminatorul CR+LF se pune inclusiv dupa ultima linie din fisier. Daca il deschizi in Notepad poti plasa cursorul pe o aparenta a doua linie, dar de fapt este imediat dupa sfarsitul fisierului (= dupa CR+LF care marcheaza sfarsitul singurei linii).
Poate ti se pare ca exista o a doua linie din cauza lungimii fisierului obtinut. Ai in orice caz 2 bytes mai mult decat textul pentru CR si LF. In linia de comanda, cum ai scris-o aici, ai un spatiu inanite de > si acesta este inclus in text, nu e ignorat (cel dintre > si numele fisierului este). Deci obtii un fisier de lungime 4 (test) + 1 (spatiul) + 2 (CR+LF) = 7. Ca principiu Command prompt din Windows, si nici vechiul DOS, nu adauga/foloseste Ctrl+Z la sfarsit de fisier. Exceptia de care stiu este copy fisier_1 + fisier_2 fisier_de_iesire_ce_va_avea_ctrlz (concatenare de fisiere FARA comutatorul /b pentru mod binar). Daca doresti sa scrii in fisier un text fara terminator de linie: set /p =text_oarecare_dar_care_nu_poate_incepe_cu_egal<nul>fisierul_de_creat |
#4
Posted 26 June 2021 - 12:05
Multumesc amandoura pentru explicatii.
sags, on 26 iunie 2021 - 06:41, said: Daca doresti sa scrii in fisier un text fara terminator de linie: set /p =text_oarecare_dar_care_nu_poate_incepe_cu_egal<nul>fisierul_de_creat PS. Rezolvat. Se poate inchide! Merci |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users