Usando a CLI do Windows (cmd), como se localiza um arquivo que ele conhece parte do nome? Por exemplo, cada estação de trabalho Windows instala o javac em um local diferente. Como encontrá-lo na CLI do Windows (cmd)?
Pesquisando apenas menciono o uso da GUI do Windows Explorer (gerenciador de arquivos) ou o download de algum aplicativo freeware. O Windows realmente não possui um comando de localização incorporado? As edições do servidor possuem? Eu não quero instalar cygwin ou qualquer outra coisa, estes não são normalmente minhas máquinas.
windows
command-line
search
locate
dotancohen
fonte
fonte
javac
geralmente deve ser no mesmo lugar ...locate
eupdatedb
--per stackoverflow.com/questions/36841241/…Respostas:
Você deve conseguir fazer o que precisa
dir
:Substitua [filename] pelo nome do arquivo que você está procurando; você poderá usar caracteres curinga. / s faz com que ele pesquise subdiretórios; portanto, se você precisar, pode começar na raiz do C: e verificar a unidade inteira.
fonte
javac
é instalado paraC:\WINDOWS
...Ninguém fala sobre o comando "onde"? ele procura o arquivo executável no CAMINHO do ambiente atual.
fonte
Windos tem a resposta mais direta. Mas se você gosta da linha de comando, também pode usar o PowerShell. Para realizar o mesmo tipo de pesquisa que você usaria
O que tem o benefício legal de poder ser bombeado para uma declaração prática de foreach e executar um processo nos resultados da pesquisa.
fonte
gci
ouls
.cmd
,PowerShell
você pode usar "Tab" para ver sugestões, como no Linux. Portanto, não são muitos os que digitam, na verdade. E, no meu caso,ls
no PowerShell não está funcionando.Eu simplesmente consegui um programa de localização para Windows . Você só precisa seguir as instruções de leitura e copiar os arquivos .dll e .exe no system32.
A alternativa inclui adicionar o caminho do programa à variável de ambiente PATH.
A idéia é localizar no Windows se você estiver procurando algo como "localizar". :)
fonte
locate
está no meu computador Win7. Ele reclama que o banco de dados tinha 435 dias, quando a instalação não tinha mais de 3 meses. Eupdatedb
não está incluído.A questão é um tanto ambígua.
Você deseja localizar um arquivo (indicado no corpo do OP), mas também deseja um comando / aplicativo "tipo de localização" (indicado no título). Há uma consideração sutil com enormes implicações. Você pode localizar com dois métodos diferentes:
Pesquisando na estrutura da árvore de destino diretamente em cada pesquisa (lenta).
Primeiro, crie um banco de dados da estrutura da árvore de destino (pode ser demorado) e, em seguida, localize pesquisando o banco de dados (muito rápido). O banco de dados deve ser atualizado periodicamente para obter bons resultados nas pesquisas. Veja http://en.wikipedia.org/wiki/Locate_%28Unix%29 .
O Unix
locate
é do "tipo 2", mas de acordo com o corpo do seu OP, você concorda com qualquer um dos dois métodos. Além disso, você pergunta especificamente sobre as opções da CLI.Listo abaixo algumas opções e especifico se são CLI / GUI, digite 1/2, e adiciono alguns comentários.
http://locate32.cogit.net/ (já apontado por John T e depois por Cheeku ). GUI, tipo 2. Existe uma versão portátil. Excelente facilidade de uso e configurabilidade. Muito parecido com o Unix
locate
(que eu usei e gostei muito).Nota : Como o Unix está
Updatedb
demorando bastante para atualizar um banco de dados (é claro, depende do tamanho da árvore digitalizada), acholocate32
extremamente rápido. Eu não sei como isso pode ser muito melhorado.http://sourceforge.net/projects/winlocate/ CLI, digite 2.
dir [nome do arquivo] / s , a solução do Windos . CLI, tipo 1.
gci ... , a solução da OldWolf . CLI, tipo 1.
http://gnuwin32.sourceforge.net/packages/findutils.htm CLI, digite 2.
Tudo GUI, tipo?
fonte
Criei uma porta do PowerShell para localizar e atualizarb. Usa o SQLite como back-end e possui um instalador automático. Somente
localizações levam cerca de 300ms / consulta.
Então
e você está pronto.
https://gallery.technet.microsoft.com/scriptcenter/Invoke-Locate-PowerShell-0aa2673a
fonte
Não é necessário instalar manualmente. Veja http://chocolatey.org
Reinicie o ambiente do shell
fonte
Eu sei que este foi respondido há muito tempo, no entanto, este é o meu script para simular a função de localização usada no unix / linux
Salve isso como localize.bat e coloque no System32 OU execute no diretório em que está armazenado. Adota um parâmetro como este "cmd> localize javac.exe"
A opção localizar / c (como um segundo parâmetro contará o número de instâncias) e localize /? exibirá o texto de ajuda
EDIT: (Script atualizado, mais organizado e pode lidar com uma variedade maior de situações, como permitir qualquer termo de pesquisa e não apenas um nome de arquivo)
fonte
Para futuros historiadores do espaço no Windows: fomos abençoados com o Everything Search . Picture dmenu + find + mlocate agrupado em um pequeno e apertado serviço Windows com opções de CLI. Exceto que essa coisa atualiza seu índice em tempo real . Nada no Linux chega perto. Será uma das poucas vezes em que você dirá "caramba, eu gostaria que esse maldito kernel fosse um pouco mais Microsofty"
fonte
A resposta curta é que não há equivalente exato no Windows . A solução alternativa é usar o comando dir . Este é um comando de lista de diretórios que suporta caracteres especiais e pode ser usado conforme indicado na resposta aceita.
O comando Locate em muitos sistemas semelhantes ao Unix é uma pesquisa baseada em índice. Funciona em conjunto com ocomando Updatedb que indexa sistemas de arquivos. Como se trata de uma pesquisa baseada em índice, geralmente é muito mais rápido que os comandos de pesquisa baseados em texto, como dir e find no Unix, especialmente ao pesquisar hierarquias de diretório profundas.
fonte
where
é exatamente o equivalente.Não conheço nenhum método CLI para fazer isso no Windows. Lembre-se de que a CLI do Windows foi abandonada por usuários comuns, por isso oferece um conjunto de ferramentas geralmente menos maduro. Sua melhor aposta pode estar usando o gnu
find
no Windows, que você pode obter no GnuWin32 . Se você estiver desenvolvendo um script, basta incluirfind.exe
e suas dependências no script (não se preocupe, não é muito grande).fonte