Bonjour
j ai pas trouvé l'option dans pinUp donc 'ai fais mon petit script
Cela liste les noms de tables/fichier de la base PinUp et cela regarde si ils existent dans le dossier Tables
Puis cela vous les affiche et cela créé un fichier listFile.txt dans Tables
Ce script ne fait aucune modification
- Code:
-
# Chemin vers le dossier des tables
$cheminTables = "C:\vPinball\VisualPinball\Tables"
$sDatabasePath="C:\vPinball\PinUPSystem\PUPDatabase.db"
$tables = Get-ChildItem -Path $cheminTables -Filter *.vpx | ForEach-Object { $_.BaseName + ".vpx" }
$sDatabaseConnectionString=[string]::Format("data source={0}",$sDatabasePath)
$oSQLiteDBConnection = New-Object System.Data.SQLite.SQLiteConnection
$oSQLiteDBConnection.ConnectionString = $sDatabaseConnectionString
$oSQLiteDBConnection.open()
$command = $oSQLiteDBConnection.CreateCommand()
$command.CommandText = "SELECT GameName,GameFileName FROM games"
$reader = $command.ExecuteReader()
$tableDB = @()
while ($reader.HasRows){
if ($reader.Read()){
$PosX=$reader["GameFileName"].length - 3
$finC=$reader["GameFileName"].substring($PosX,3).tolower()
if ($finC -eq 'vpx') {$tableDB += ,@($reader["GameFileName"])}
}
}
#Initialise le compteur
$Compteur=0
Clear-Content $cheminTables"\listeFile.txt"
Set-Content -Path $cheminTables"\listeFile.txt" -Value (Get-Date)
#on va parcourir la table du répertorie $chemintables
$tableDB | ForEach-Object {
if ($_ -notin $tables) {
$Compteur ++
Write-Host "`La base contient ce fichier en trop [$_]"
Add-Content -Path $cheminTables"\listeFile.txt" -Value $_
}
}
Write-Host $Compteur fichiers en trop.
$reader.Close()
$oSQLiteDBConnection.Close()
le script est orienté tables .vpx