2012-02-28 17 views
5

Mam sytuację podczas pisania skryptu wsadowego wsadu. Narzędzie używane do obliczania CRC (suma kontrolna) ciągu tekstowego wymaga, aby tekst znajdował się w pliku. Dane, do których próbuję uzyskać CRC, to nazwa pliku, ale w przypadku użycia wsadu do umieszczenia tej nazwy pliku w pliku tekstowym w celu obliczenia CRC, skrypt wsadowy naturalnie umieszcza koniec linii (CR/LF) i pustą linię koniec. Ponieważ powoduje to błąd CRC, jest to problem.Dos Pakiety: zapisuj do plików bez wiersza kończącego się

Czy istnieje sposób na zapisanie skryptu wsadowego do pliku tekstowego bez dołączania zakończenia linii? IE do wyprowadzenia pojedynczej linii niedokończonej do pliku?

-K.Barad

+1

czy narzędzie przyjmuje dane wejściowe z wiersza poleceń, czy można go wywołać za pomocą potoku '|'? – vulkanino

Odpowiedz

9

<nul set /p ".=text" > file

Jest to szybsze i bezpieczniejsze niż echo.|set /P ="text" > file

nul przekierowania jest szybciej niż rury z echo. (btw echo. może nie).
Styl cudzysłowów umożliwia również wypowiadanie cudzysłowów.

Ale zawsze są ograniczenia!
Vista i Win7 mają "funkcję" do tłumienia wiodących spacji, Tabs i CR.
Xp może wypisać tekst z początkowymi spacjami i tak dalej.
I nie można rozpocząć tekstu wyjściowego znakiem równości (powoduje błąd składni)

+0

dziękuję, to rozwiązało to dla mnie –

+0

Po uruchomieniu ' file' zawiesza mój terminal. Co się dzieje? – raphaelh

+0

Dlaczego otrzymuję komunikat "Składnia polecenia jest niepoprawna." Kiedy go wypróbuję? .. –

5

Mogłabyś

echo.|set /P ="text" > file 

source

lub bezpośrednio rura tekst do wiersza poleceń: echo "tekst" | checksum_program.exe

edit:

jeśli używasz CRC32DOS, a następnie można użyć jej wiersza poleceń opcję -c ignorować CR s.

+0

Niestety jest to niestandardowy program CRC. Dzięki za podpowiedź, dołączanie pliku bez nowych linii jest przydatną techniką. –

Powiązane problemy