come estendere un comando alla riga successiva?
fondamentalmente qual è l'alternativa di Windows per Linux
ls -l \
/usr/
qui usiamo la barra rovesciata per estendere il comando sulla riga successiva
qual è l'equivalente per windows?
come estendere un comando alla riga successiva?
fondamentalmente qual è l'alternativa di Windows per Linux
ls -l \
/usr/
qui usiamo la barra rovesciata per estendere il comando sulla riga successiva
qual è l'equivalente per windows?
Risposte:
Dopo aver provato quasi tutti i tasti sulla mia tastiera:
C:\Users\Tim>cd ^
Mehr? Desktop
C:\Users\Tim\Desktop>
Quindi sembra essere il tasto ^.
Nel prompt dei comandi di Windows ^
viene utilizzato per uscire dal carattere successivo nella riga di comando. (Like \
è usato nelle stringhe.) I caratteri che devono essere usati nella riga di comando così come sono devono avere un ^ prefisso, quindi è per questo che funziona per la nuova riga.
Per riferimento i caratteri che necessitano di escape (se specificato come argomento di comando e non tra virgolette) sono: &|()
Quindi l'equivalente del tuo esempio di Linux sarebbe (il Più? Essendo un prompt):
C:\> dir ^
More? C:\Windows
Se sei venuto qui alla ricerca di una risposta a questa domanda, ma non esattamente come intendeva l'OP, ovvero come si fa a far funzionare la CMD multilinea su una sola linea, ho una sorta di risposta pericolosa per te.
Cercare di usarlo con cose che usano effettivamente le tubazioni, come dire findstr
è abbastanza problematico. Lo stesso vale per trattare con else
s. Ma se vuoi solo un comando condizionale multilinea da eseguire direttamente da CMD e non tramite un file batch, questo dovrebbe funzionare bene.
Supponiamo che tu abbia qualcosa del genere in un batch che desideri eseguire direttamente nel prompt dei comandi:
@echo off
for /r %%T IN (*.*) DO (
if /i "%%~xT"==".sln" (
echo "%%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file
echo Dumping SLN file contents
type "%%~T"
)
)
Ora, puoi usare il carat di continuazione di riga ( ^
) e digitarlo manualmente in questo modo, ma attenzione, è noioso e se sbagli puoi imparare la gioia di scrivere di nuovo tutto.
Bene, non funzionerà solo ^
grazie ai meccanismi di fuga all'interno delle parentesi scrollate Almeno non come scritto. In realtà dovresti raddoppiare i carati in questo modo:
@echo off ^
More? for /r %T IN (*.sln) DO (^^
More? if /i "%~xT"==".sln" (^^
More? echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file^^
More? echo Dumping SLN file contents^^
More? type "%~T"))
Invece, puoi essere uno scripter subdolo sporco dal lato sbagliato delle tracce che non ha bisogno di carati scambiandoli con una singola pipe ( |
) per la continuazione di un loop / espressione:
@echo off
for /r %T IN (*.sln) DO if /i "%~xT"==".sln" echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file | echo Dumping SLN file contents | type "%~T"