Inserimento \ r \ n nel parametro su Windows


1

Sto usando FFmpeg su Windows, dove ho bisogno di inserire un \r\n in un parametro stesso.

ffmpeg … -headers "X-Test: Test\r\nX-Test-2: Test 2\r\n" …

Mentre questo funzionerà bene sotto Linux e così via, non funziona da un normale prompt dei comandi di Windows 10. Inoltre non funziona sotto Bash sotto Windows. In entrambi i casi, un letterale \r\n (backslash, r, backslash, n caratteri) vengono inviati.

Ho provato ad usare Alt + 13 Alt + 10, e mentre questo sembrava inserire caratteri, sono stati interpretati come 0xE299AA 0xE29799 di FFmpeg.

Questa domanda è simile a Come posso inserire una nuova riga in un comando cmd.exe? , tranne che non sono legato a cmd.exe. Sono felice di utilizzare qualsiasi shell finché posso usarlo sotto Windows, se ci sono suggerimenti. Questo è possibile tramite PowerShell in qualche modo? O magari inserendo i miei parametri in un file di testo e inserendolo come valore di parametro?


Vuoi una soluzione per Bash, PowerShell o cmd?
EBGreen

@EBGreen Non importa ... nessuno di questi va bene finché è per Windows.
Brad

@PimpJuiceIT Che funziona nella riga di comando di PowerShell !!! Grazie! Vuoi postarlo come risposta?
Brad

Ecco come hai suggerito con la logica di esempio che ho usato in passato.
Pimp Juice IT

@ PimpJuiceIT Sì, è quello che ha funzionato! Veramente semplice, grazie.
Brad

Risposte:


1

In PowerShell, puoi usare backtick-r-backtick-n e utilizzare i backtick al posto dei backslash prima del r e il n per il CRLF parti del comando backtick "r" backtick "n" .

Questo richiede solo questa modifica al comando esistente

ffmpeg … -headers "X-Test: Test`r`nX-Test-2: Test 2`r`n"

Ulteriori risorse


1

Bash ha $'…' sintassi per questo. Dovrebbe funzionare indipendentemente dal sistema operativo.

ffmpeg … -headers $'X-Test: Test\r\nX-Test-2: Test 2\r\n' …

A partire dal Bash Manuale di riferimento :

Parole della forma $'string' sono trattati appositamente. La parola si espande a string, con caratteri di escape backslash sostituiti come specificato dallo standard ANSI C. Le sequenze di escape di backslash, se presenti, vengono decodificate come segue:

[...]

\n
nuova linea

\r
ritorno a capo

[...]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.