2014-12-17 4 views
5

Ho il seguente comando batch per aprire i file con l'estensione dtd.Comando batch per aprire tutti i file di un determinato tipo in Notepad ++

REM Open all the static content files 
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder1\File1.dtd" 
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder1\File2.dtd" 
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder2\File1.dtd" 
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder2\File2.dtd" 
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder3\File1.dtd" 
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\folder3\File2.dtd" 

Come posso cambiare questo comando batch per aprire tutti i file con estensione dtd nella cartella "D:\data"?

Ho provato il codice qui sotto, ma non funziona

REM Open all the static content files 
"C:\Program Files (x86)\Notepad++\notepad++.exe" "D:\data\\*.dtd" 

risposta

7

È possibile utilizzare il comando FOR:

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

Passeggiate l'albero delle directory radice in [unità:] percorso , eseguendo l'istruzione FOR in ciascuna directory dell'albero. Se nessuna specifica della directory viene specificata dopo/R, la directory corrente è presunta. Se impostato è solo un singolo carattere punto (.), Allora lo enumera semplicemente l'albero delle directory.

Nel tuo caso questo dovrebbe funzionare:

FOR /R d:\data %a IN (*.dtd) DO "C:\Program Files (x86)\Notepad++\notepad++.exe" "%a" 

Usa %%a se è necessario eseguire questo da un file batch

Se si desidera utilizzare più estensioni è possibile separare quelli con uno spazio

FOR /R d:\data %a IN (*.dtd *.xml *.xslt) DO "C:\Program Files (x86)\Notepad++\notepad++.exe" "%a" 
+0

E 'possibile includere diversi fileendings nel (set) parte in una volta? – Kaiserludi

+0

@Kaiserludi sì, che risulta essere possibile, ho aggiunto questa opzione nella mia risposta. – rene

1

si potrebbe anche voler scrivere il file batch in questo modo:

set command=C:\Program Files (x86)\Notepad++\notepad++.exe 
FOR /R d:\data %%a IN (*.dtd) DO %command% %%a 
0

Se non si desidera aprire i file della sessione precedente, aggiungere il parametro -nosession.
(qui ad esempio per dtd estensione di un file .bat)

for /R %%x in (*.dtd) do (
    start "" "C:\Program Files\Notepad++\notepad++.exe" -nosession "%%x" 
)