Seu código precisa de alguns retoques. O operador de pipe precisa ser escapado pelo caractere de escape de lote ^
e, ao usar aspas entre parênteses para um comando, a opção usebackq
deve ser especificada.
Formato de lote:
for /f "usebackq" %%i in ('dir /s /b ^| find "lock"') do echo %%i
Formato da linha de comando:
for /f "usebackq" %i in ('dir /s /b ^| find "lock"') do echo %i
Substitua echo
por del
e qualquer uma das suas opções quando quiser realmente excluir os arquivos. Observe que os sinais percentuais duplos são necessários quando usados em um arquivo bat, único quando usados diretamente na linha de comando.
Outro método é usar o comando forfiles
. forfiles /?
forfiles /m *lock* /s /c "cmd /c echo @file"
Observação , ambos os métodos também excluirão as pastas que contiverem o termo de pesquisa lock
. Passos adicionais seriam necessários para evitar isso.