2012-02-12 21 views

risposta

6

Questo funziona dalla mia linea di comando:

for /F "usebackq" %%i in (`dir /b C:\macros\Day\`) DO %%i 

come fa questo:

for %%i in (C:\macros\Day\*) do %%i 
+0

non dovrebbe questo è "per/F" usebackq "% i in ...'? – wmz

+0

Sì; aggiornato. Grazie per la cattura! –

1

Si dovrebbe usare dir /b per elencare tutti i file, in modo che diventi

for /f %i in ('dir /b c:\macros\Day') do command %i 
+1

Con doppia% se lo metti in un file batch – ixe013

5

hai usato la variante errata di for. semplicemente non (gioco di parole) for %%i in (c:\macros\Day\*) do %%i

Edit: Se è necessario eseguire un command su tutti i file: for %%i in (c:\macros\Day\*) do command %%i

+0

Grazie per la risposta. Tuttavia, questo mi dà: \ macros \ Day \ *) era inaspettato in questo momento. – sifuhall

+1

Dovrebbe essere, per% i in (c: \ macros \ Day \ *) fare COMANDO% i' (è necessario specificare il comando che opera su% i) –

+1

se eseguito da file batch, è necessario sostituire% qualunque cosa con %% qualunque (quindi% i diventa %% i e così via). Hai dato il tuo esempio con% singolo, così ho fatto anche io .. – wmz

0

Inoltre, assicurarsi di creare variabili all'interno dei file batch %% i anziché% i altrimenti si ottiene un errore nella forma "ero inaspettato in questo momento".

0

Questo è quanto ho potuto eseguire tutti i file PowerShell in stessa directory del file batch

@ECHO OFF 

SET PowerShellExe=%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe 

for %%i in (*.ps1) do (

%PowerShellExe% -NoProfile -ExecutionPolicy Bypass -Command %cd%\%%i  

) 
Problemi correlati