Ir ao conteúdo

Posts recomendados

Postado

Gostaria de criar dois arquivos .bat para exportar uma lista com todos os aplicativos instalados no PC e outra uma lista com o nome e detalhes de todos os aRquivos do PC.

>> LISTAR OS APLICATIVOS INSTALADOS: Já mais ou menos consegui com o seguinte código , mas a linha 4 eu preciso colar manualmente para funcionar. Também gostaria que o arquivo .txt fosse salvo automaticamente no diretório em que o arquivo .bat está, tentei algumas opções como por exemplo - "%~dp0\listaprogramas.txt" - mas não funciona.

 

@echo.

WMIC

@echo.

/output:C:\Users\listaprogramas.txt product get name, version, installDate, description

@echo.

@pause

 

>> LISTAR ARQUIVOS DO PC: Só consegui listar os arquivos de uma determinada pasta, mas não de todos dentro do pc, como posso fazer isso: Segue código para salvar os arquivos da pasta:

@echo

dir /b /o:n >nomesarq.txt

 

Captura de tela 2024-08-20 163734.png

  • Curtir 1
Postado

No caso você quer todos os arquivos de uma unidade (tipo c:\) ou todas as unidades?

 

Para pegar todos os arquivos do c:\ seria algo assim:

dir /b /on /s c:\>>nomesarq.txt

 

Para pegar todos os arquivos de todas as unidades seria algo assim:

for /f "skip=1 delims=" %%a in ('wmic volume get driveletter') do for /f %%b in ("%%~a") do dir /b /on /s "%%b">>nomearq.txt

 

  • Obrigado 1
Postado

Seria de todas as unidades, mas tentei executar o código que me passou e não deu certo talvez por serem muitos arquivos, não sei.... Tem algum modo para eu especificar que quero apenas arquivos com determinadas extensções? Por exemplo, apenas .docx , .pdf , .xlxs ?

Aproveitando o topico, tenho esse outro cod. para salvar as informações de todos os programas instalados no pc. 

 

<CODIGO>

@echo
echo Listing installed applications...  
wmic product get name,version,installDate,description > %computername%_InstalledApps.txt  
echo List saved to InstalledApps.txt  
pause

<CODIGO>

Tudo certo, mas a data de instalação fia salva no formato aaaammdd, queria que fica-se dd/mm/aaa
Tem algum jeito de fazer isso?

 

Captura de tela 2024-08-21 133039.png

Postado

@rodrigo silva frc wmic product só pega os programas de instalação MSI, isso não inclui todos os programas do computador. Eu recomendo pegar a listagem dos programas no registro do Windows veja esse exemplo:

 

Link

 

@echo off
chcp 1252 >nul
SetLocal EnableDelayedExpansion
set Log=%computername%_InstalledApps.txt

if exist "%Log%" del /q "%Log%"
if exist "%Log%.tmp" del /q "%Log%.tmp"


Title bat 02

for /f "delims=" %%a in ('reg query "HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall" 2^>nul') do (
                                                                                                                        set Nome=
                                                                                                                        set DataI=
                                                                                                                        for /f "tokens=2*" %%b in ('reg query "%%a" /v "DisplayName" 2^>nul') do set "Nome=%%c"
                                                                                                                        for /f "tokens=2*" %%d in ('reg query "%%a" /v "InstallDate" 2^>nul') do set "DataI=%%e"
set "Nome=!Nome!                                                     "
set "Nome=!Nome:~0,50!"
if not [!DataI!]==[] set "DataI=!DataI:~6,2!/!DataI:~4,2!/!DataI:~0,4!"
                                                                                                                        if /i not "!Nome!"=="" >>"%Log%.tmp" echo/!Nome! !DataI!
                                                                                                                       )

for /f "delims=" %%a in ('reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" 2^>nul') do (
                                                                                                            set Nome=
                                                                                                            set DataI=
                                                                                                            for /f "tokens=2*" %%b in ('reg query "%%a" /v "DisplayName" 2^>nul') do set "Nome=%%c"
                                                                                                            for /f "tokens=2*" %%d in ('reg query "%%a" /v "InstallDate" 2^>nul') do set "DataI=%%e"
set "Nome=!Nome!                                                     "
set "Nome=!Nome:~0,50!"
if not [!DataI!]==[] set "DataI=!DataI:~6,2!/!DataI:~4,2!/!DataI:~0,4!"
                                                                                                            if /i not "!Nome!"=="" >>"%Log%.tmp" echo/!Nome! !DataI!
                                                                                                           )

>>"%Log%" echo %computername%:
set "Nome=Nome:                                                   "
set "Nome=!Nome:~0,50!"
set "DataI=Data:"
>>"%Log%" echo/     !Nome! !DataI!
for /f "delims=" %%a in ('type "%Log%.tmp"^|sort') do find /i "%%a" "%Log%" 1>nul 2>nul || >>"%Log%" echo/     %%a
>>"%Log%" echo.
>>"%Log%" echo.
del /q "%Log%.tmp"

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...