2015-06-24 10 views
6

Mam polecenie o nazwie compare, które zwraca liczbę. Chcę wydrukować spacje, a następnie "tekst", a następnie numer do pliku. Oczekiwany wynik jest podobny:Partia - Nie można wydrukować spacji rozpoczynających ciąg znaków

text1 

moich wydruków kodów text1 bez spacji

set "output=  text" 
<nul set /p "=!output!" >> "%resultFile%" 
compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2>> "%resultFile%" 

Próbowałem wydrukować znak tabulatora echo <TAB> >> "%resultFile%" ale dał mi błąd „>> było nieoczekiwane w tej chwili.” Co powinienem zrobić? Z góry dziękuję!

Odpowiedz

1

Działa to dobrze:

set "output=  text" 
>> "%resultFile%" echo %output% 

Więc co o dołączenie wyjście polecenia w samej partii?

set "output=  text" 
call compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2> temp.txt 
set /p number=<temp.txt 
del temp.txt 
>> "%resultFile%" echo %output%%number% 

Zobacz https://stackoverflow.com/a/2340018/711006. Wolałbym opcję for, ale nie działa ona dla wyjścia błędu.

EDIT

PO zaproponował edycji ostatnią linię do tego:

echo !output!!number! >> "%resultFile%" 

W ! „S zamiast %” s są potrzebne, gdy polecenia są rozszerzane razem, na przykład jako część bloku if lub for. Jednak trzeba wcześniej wydać polecenie setlocal EnableDelayedExpansion, a my nie wspominaliśmy o tym w tym pytaniu.

i polecam dalej czytać o zamianę na przekierowanie polecenia i wyjścia: Problems with an extra space when redirecting variables into a text file

+0

@ozcanovunc Proszę wkleić kod na propozycje zmian w komentarzach następnym razem, więc możemy omówić zmiany razem i każdy może obserwować nasze myśli. – Melebius

Powiązane problemy