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 elses. 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"