2012-09-20 12 views
7

Zauważyłem, że kiedy używam echa do drukowania czegoś do pliku w DOS, do łańcucha dołączany jest spacja. Muszę wydrukować ciąg bez spacji. Czy istnieje sposób, aby to zrobić, lub jako obejście, usunąć końcowe spacje z pliku?Używanie echa bez spacji w DOS

Odpowiedz

19

Jeśli zrozumiałem problem poprawnie, to napisał końcową przestrzeń.

Zamiast

echo string > file 

użytku

echo string>file 
+0

Ha! Dokładnie to! Nie zdawałem sobie sprawy, że echo wypisze dokładny ciąg po nim. Dzięki! – Rayne

+2

Wydaje się to dobre, ale nie zadziała. Spróbuj tego: 'echo 1 2 3> file'. Jeśli łańcuch zakończy się liczbą, przekierowanie potraktuje go jako kanał potoku. Możesz umieścić go w cudzysłowie, ale możesz tego nie chcieć w cudzysłowie. – Synetech

+2

@Synetech '(echo 1 2 3)> file' – bers

0

Niektóre szybkie wyszukiwanie przyniósł mi this link

Wydaje masz wiele opcji. Jeśli chcesz, aby zanalizować pliku post-echo za pomocą skryptu, można rozważyć tę VBScript

Do While Not WScript.StdIn.AtEndOfStream 
    WScript.Echo RTrim(WScript.StdIn.ReadLine) 
    Loop 

który pętle, linia po linii przez plik (zazwyczaj .txt) i wykonuje RTrim, który Paski spacje.

Cheers

+0

To samo można osiągnąć za pomocą wsadu z tokenami' for/f "= * delims =" %% x in (file.txt) echo% x> plik2.txt '. Ale dlaczego nie zrobić tego w oryginalnym pliku? –

10

Zakładając mówisz cmd.exe zamiast rzeczywisty (raczej nieaktualne) MS-DOS, istnieje wiele sposobów, aby to zrobić, pierwsza istota:

echo Here is some text>output.txt 

ale Uważam, że jest to nieco mniej czytelne, ponieważ jestem przyzwyczajony do jasnego określania "argumentów" w wierszu poleceń.

Alternatywnie, nie ma nic Cię powstrzymuje od wymiany całego rzędu linii komend:

>output.txt echo Here is some text 

który pozwoli Ci jeszcze oddzielić argumenty natomiast nie posiadające nadmiarowe spacje umieścić w pliku wyjściowym.

W rzeczywistości, mam często stosowali tę metodę dla bloków kodu, a także:

>output.txt (
    echo hello 
    echo goodbye 
) 

który napisze zarówno linie do pliku. Uważam, że jest to lepsze w tym przypadku, ponieważ wiesz dokładnie na początku, gdzie wyjście idzie, zamiast iść i patrzeć na koniec bloku kodu.

+0

Znalazłem, że podczas echo z wewnątrz bloku kodu czasami traci powrót karetki i wyjście w jednej linii. –

+0

Miałem także problemy z prowadzącymi spacjami, więc użyłem funkcji escape (^): echo^string1, w powyższym formacie. Pracował uczta. – will

+0

'echo Tutaj jest tekst> wynik.txt , ale uważam, że nieco mniej niż czytelny, ponieważ jestem przyzwyczajony do jasnego określenia "argumentów" w wierszu poleceń. "Co ważniejsze, jeśli tekst kończy się liczbą, będzie traktowany jako kanał rurowy. Drugi wydaje się działać dobrze (nie przypominam sobie wcześniejszego oglądania tej formy). Dzięki. – Synetech

Powiązane problemy