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
Jeśli zrozumiałem problem poprawnie, to napisał końcową przestrzeń.
Zamiast
echo string > file
użytku
echo string>file
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
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? –
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.
Znalazłem, że podczas echo z wewnątrz bloku kodu czasami traci powrót karetki i wyjście w jednej linii. –
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
'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
Ha! Dokładnie to! Nie zdawałem sobie sprawy, że echo wypisze dokładny ciąg po nim. Dzięki! – Rayne
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
@Synetech '(echo 1 2 3)> file' – bers