2012-02-12 13 views

Respuesta

6

Esto funciona de mi línea de comandos:

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

al igual que esta:

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

no debería esto es 'for/F" usebackq "% i in ...'? – wmz

+0

Sí; actualizado. Gracias por la captura! –

1

Debe utilizar dir /b para listar todos los archivos, por lo que se convierte en

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

Con el doble% si lo pones en un archivo por lotes – ixe013

5

ha utilizado la variante incorrecta de for. simplemente no (nunca mejor dicho) for %%i in (c:\macros\Day\*) do %%i

Editar: Si necesita ejecutar un command en todos los archivos: for %%i in (c:\macros\Day\*) do command %%i

+0

Gracias por la respuesta. Sin embargo, dame: \ macros \ Day \ *) inesperado en este momento. – sifuhall

+1

Debería ser 'para% i en (c: \ macros \ Day \ *) do COMMAND% i' (debe especificar el comando que opera en% i) –

+1

si se ejecuta desde un archivo por lotes, debe reemplazar% lo que sea con %% lo que sea (entonces% i se convierte en %% i y así sucesivamente). Usted ha dado su ejemplo con un solo%, así que también lo hice .. – wmz

0

Además, asegúrese de hacer variables dentro de los archivos por lotes %% i en lugar de% i de lo contrario obtendrá un error en la forma "era inesperado en este momento".

0

Esta es la forma en que podría correr todos los archivos de PowerShell en el mismo directorio que el archivo por lotes

@ECHO OFF 

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

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

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

) 
Cuestiones relacionadas