Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
ULBS INFORMATICA

Index preturi

Boxa membrana tweeter infundata

Am nevoie de poze cu un curcubeu
 Whisky for Mac

Xiaomi 14 Gpay

Izolare zid exterior de scandura

Dezinstalare drivere W11 23H3
 Recomandare masina de spalat fiab...

BSOD din cauza Intel Audio DSP dr...

De ce sunt oamenii nostalgici

Cum vand casa fara factura Hidroe...
 Scor FICO minim

Tonometru compensat CAS?

polita RCA ONLINE

Termostat frigider - verificare
 

Eliminare linie in fisier creat cu un .bat

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

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
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
maccip

maccip

    45 ani

  • Grup: Senior Members
  • Posts: 33,208
  • Înscris: 06.01.2007
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
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,937
  • Înscris: 24.04.2013
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
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Multumesc amandoura pentru explicatii.

View Postsags, 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

Da, asta mi-a rezolvat problema. Multumesc.

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

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