Sto lavorando a uno script che esegue un'applicazione della riga di comando che richiede l'input dell'utente in fase di esecuzione (purtroppo non vengono forniti argomenti della riga di comando).Windows cmd eco/pipe aggiunge ulteriore spazio alla fine: come ridurlo?
Così il mio primo tentativo si presentava così:
@echo off
(echo N
echo %~dp0%SomeOther\Directory\
echo Y)|call "%~dp0%SomeDirectory\SadSoftware.exe"
A prima vista sembrava che ha funzionato abbastanza bene, ma come si è scoperto che non ha fatto. Dopo le indagini ho scoperto che la directory che stavo passando al software conteneva spazio extra alla fine, il che ha causato alcuni problemi.
Mi sono guardato un po 'in giro e ho scoperto la seguente domanda: echo is adding space when used with a pipe.
Questo ha spiegato cosa sta succedendo, ma in realtà non mi ha aiutato a risolvere il mio problema (non ho molta familiarità con la programmazione in batch).
Al momento mi "tipo di risolto" il mio problema con una soluzione brutta:
echo N> omg.txt
echo %~dp0%SomeOther\Directory\>> omg.txt
echo Y>> omg.txt
"%~dp0%SomeDirectory\SadSoftware.exe"<omg.txt
del omg.txt
Questa soluzione funziona, ma sono meno soddisfatto. C'è un modo più carino? O ancora più brutto, ma senza file temporanei?
Proprio per il completamento, forse si potrebbe includere 'cmd/q/c" (eco linea 1) & (echo line2) & (echo line3) "| more' –
Grazie! Ho usato la seconda soluzione e funziona come un fascino.^_^ – Dino
Grazie per l'ottima risposta. Ho usato Solution2 in questo modo (nuove linee non sono ammessi nei commenti quindi "" è una nuova linea qui): '( eco b^&^ eco a^&^ rem .) | sort' in modo da non dover mettere tutto in una riga. –
anilech