Je voudrais écrire un script qui peut analyser de manière récursive les DLL dans un répertoire et générer un rapport de tous leurs numéros de version. Comment puis-je détecter le numéro de version d'une DLL à l'aide d'un script? Les solutions VBScript sont préférées, à moins qu'il y ait une meilleure solution.Détection d'un numéro de version de DLL à l'aide d'un script
2
A
Répondre
4
Vous pouvez utiliser l'objet FileSystemObject
pour accéder au système de fichiers et sa méthode GetFileVersion
pour obtenir les informations de version de fichier.
Vous avez demandé un exemple VBScript, donc vous êtes ici:
Dim oFSO : Set oFSO = CreateObject("Scripting.FileSystemObject")
PrintDLLVersions oFSO.GetFolder(WScript.Arguments.Item(0))
Sub PrintDLLVersions(Folder)
Dim oFile, oSubFolder
' Scan the DLLs in the Folder
For Each oFile In Folder.Files
If UCase(oFSO.GetExtensionName(oFile)) = "DLL" Then
WScript.Echo oFile.Path & vbTab & oFSO.GetFileVersion(oFile)
End If
Next
' Scan the Folder's subfolders
For Each oSubFolder In Folder.SubFolders
PrintDLLVersions oSubFolder
Next
End Sub
Utilisation:
> cscript //nologo script-file.vbsfolder >out-file
par exemple .:
> cscript //nologo dll-list.vbs C:\Dir > dll-list.txt
Exemple de sortie:
C:\Dir\foo.dll 1.0.0.1 C:\Dir\bar.dll 1.1.0.0 C:\Dir\SubDir\foobar.dll 4.2.0.0 ...
2
EDIT Je pense que this est la source dont j'ai parlé
Voici le script que je l'utilise, je présente mes excuses, mais je ne me souviens pas d'où. (Ainsi, lecteur, si cela a commencé comme votre script s'il vous plaît étape) Il utilise le FileSystemObject qui peut obtenir la version directement.
@echo off
setlocal
set vbs="%temp%\filever.vbs"
set file=%1
echo Set oFSO = CreateObject("Scripting.FileSystemObject") >%vbs%
echo WScript.Echo oFSO.GetFileVersion(WScript.Arguments.Item(0)) >>%vbs%
for /f "tokens=*" %%a in (
'cscript.exe //Nologo %vbs% %file%') do set filever=%%a
del %vbs%
echo Full file version of %file% is: %filever%
for /f "tokens=2 delims=. " %%a in ("%filever%") do set secondparam=%%a
set splevel=%secondparam:~0,1%
echo SP level is: %splevel%
endlocal
pause
Questions connexes
- 1. Numéro de version d'une dll dans .NET
- 2. Détection de la version COMCTL32 dans .NET
- 3. Attacher le numéro de version à NSKeyedArchive
- 4. Détection de version avec Silverlight
- 5. Application.UserAppDataRegistry et numéro de version
- 6. Détection de la version d'Internet Explorer à l'aide de VB6
- 7. La version du navigateur de détection
- 8. Inclure automatiquement le numéro de version DLL dans le nom de fichier dans Visual Studio
- 9. DLL de site Web ASP.NET: version de débogage et version
- 10. app_themes fichiers css et numéro de version
- 11. Flash AS3 avec numéro de version HG?
- 12. Comment puis-je récupérer le numéro de version d'un EXE Windows ou d'une DLL?
- 13. structure de données laide à la recherche java
- 14. numéro de version à l'intérieur AssemblyInfo.cs mise à jour en dehors du studio visuel
- 15. Script Bash, Numéro illégal: 08
- 16. Créer la guerre de Grails sans numéro de version
- 17. Vérification de la validité du numéro de version avec Perl
- 18. Managed C++: Comment faire pour que mon numéro de verison non géré corresponde au numéro de version de mon assembly
- 19. Gestion automatique du numéro de version de l'assemblage dans VS2008
- 20. Numéro de version du programme d'installation de VS 2005
- 21. Comment mettre à jour le numéro de version de dll généré par le projet de déploiement Web VS2005 en utilisant NAnt
- 22. Détection de la version Excel installée (et des Service Packs)
- 23. Weird Clojure Box - bibliothèque (dll) numéro
- 24. Comment simplement charger la dernière version de dll de GAC
- 25. MSBuild Tâche de lire la version de la DLL
- 26. Détection du shell interactif dans le script ENV de ksh
- 27. Détection de l'exécution interactive d'un script python dans ipython
- 28. Numéro de version dans l'application .NET Compact Framework
- 29. Comment utiliser les mathématiques Javascript sur un numéro de version
- 30. Pourquoi mon expression régulière pour correspondre à un numéro de version ne fonctionne pas?
Si vous voulez le faire en VB6. Regarde ça. A travaillé 100% pour moi: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4976&lngWId=1 – Koekiebox
Vous pourriez regarder PowerShell. – TrueWill
Ajout de la balise 'vbscript'. – Helen