Sim. O canal |
redireciona a saída do programa 1 para a entrada do programa 2. No entanto, seu programa 2 - attrib
- não lê nenhuma entrada . Não foi escrito para fazer isso. Em vez disso, espera nomes de arquivos em sua linha de comando.
A maioria dos Unixes tem uma ferramenta chamada xargs
para lidar com esses casos de conversão de entrada de texto em argumentos de linha de comando. (A maioria dos Unixes também tem uma ferramenta chamada find
para lidar com esse caso específico de aplicação de um comando recursivamente também. (A maioria dos Unixes também tem um comando chmod
que também tem uma opção de "modo recursivo", mas eu acho que isso é de pouca relevância aqui.))
No Windows, sem xargs
, você terá que fazer algo como:
for/f "tokens=*" %f in ('dir/b/ash') do @attrib -r -h -s "%~f"
Ou talvez:
for/r . %f in (*) do @attrib -r -h -s "%~f"