14 votes

Est-il possible de vérifier l'intégrité de tous les jeux Steam installés ?

Mon disque dur a commencé à tomber en panne récemment. J'ai réussi à copier presque toutes les données sur un autre disque, mais 280 secteurs (140 ko) étaient corrompus. Comme ce disque contient également ma bibliothèque Steam, je veux vérifier s'il n'est pas corrompu.

Cependant, je n'ai pas envie de faire un clic droit sur plus de 200 titres de jeux dans ma bibliothèque, d'accéder à leurs propriétés, aux données locales et de vérifier l'installation. Existe-t-il un moyen de vérifier l'intégrité de tous les jeux Steam installés ? Ou dois-je les vérifier un par un ?

1 votes

Vous pouvez sélectionner plusieurs titres dans la bibliothèque Steam en maintenant la touche Shift + left mouse mais malheureusement, Steam ne propose que les options "ajouter aux favoris" et "définir des catégories" lorsque plusieurs jeux sont sélectionnés.

0 votes

C'est toujours bon à savoir, car mes catégories ont disparu suite à une expérience sans rapport, merci !

6voto

user163757 Points 1728

Steam ne permet pas de vérifier l'intégrité de tous vos jeux en même temps. Cependant, quelqu'un a créé un script que vous pouvez essayer d'exécuter et qui vérifie tous vos jeux en une seule fois.

Un lien vers le post Reddit est disponible. aquí . Il donne un aperçu de ce qu'est le script. Afin d'exécuter ce script, vous aurez besoin de AutoIt . Après avoir téléchargé AutoIt, vous pouvez exécuter l'application script . Selon le post, vous devriez même être en mesure de voir de quoi se compose le script.

Les posts Reddit soulignent quelques points à garder à l'esprit :

  • Votre ordinateur ne doit pas être utilisé activement pendant l'exécution du script.
  • Les fenêtres Steam affichant le jeu en cours de vérification continueront de s'ouvrir, mais elles devraient être automatiquement fermées une fois la vérification terminée. Si vous utilisez d'autres programmes alors que l'outil est en cours d'exécution, il est possible qu'il ferme la mauvaise fenêtre.
  • Vous pouvez ignorer des jeux spécifiques si vous le souhaitez en ajoutant le SteamId du jeu au fichier "validationBlacklist.txt" dans ce format : 15620 20570 220240 19900 50130 50620

Il existe également un lien vers une version .exe autonome du script, mais ce lien ne semble pas vouloir fonctionner (du moins pour moi). Notez que vous devez également être prudent lorsque vous téléchargez des fichiers de ce type sur Internet, alors prenez des risques à vos dépens ! Veillez également à suivre les instructions indiquées dans le post Reddit. C'est un peu long de tout poster ici.

5voto

Eric Allam Points 317

Voici un moyen de revérifier et de mettre à jour tous les jeux installés, sous Linux, en utilisant steamcmd.

Steamcmd est une source fermée et se met à jour à partir du réseau, comme le client Steam ; l'avantage est qu'il fonctionne à partir de la CLI.

Installer steamcmd depuis Ubuntu multiverse ou https://media.steampowered.com/installer/steamcmd_linux.tar.gz . Il se mettra à jour automatiquement lors de la première exécution.

Si certaines de vos bibliothèques se trouvent sur un support amovible, vérifiez qu'elles sont toutes actives dans les paramètres de Steam, section Téléchargement. Fermez Steam.

Remplacez votre nom de connexion Steam par la commande suivante, puis exécutez-la :

steamcmd +login $mylogin $(
  steamcmd +login $mylogin +apps_installed +quit \
  |grep -Po '(?<=^AppID )[0-9]+(?= : )' \
  |sort -V \
  |while read appid; do \
    echo +app_update "$appid" validate; done \
) +quit

Les vérifications prennent un certain temps, mais devraient se dérouler sans surveillance.

Il est possible d'obtenir de fausses erreurs si votre connexion est défaillante ; vous pouvez insérer quelque chose comme |awk 'f{print} /$lastsuccessappid/{f=1}' immédiatement après le |sort -V pour continuer après le dernier contrôle réussi.

0 votes

Bien qu'il s'agisse d'un bon conseil pour les utilisateurs de Linux, ma question est/était spécifique à Windows (ou plutôt : je ne suis pas sous Linux, donc je ne peux pas utiliser votre super script :/ ).

1 votes

steamcmd est disponible pour Windows, il vous suffira d'adapter le script à powershell ou aux utilitaires batch.

2voto

joshhemphill Points 111

En partant de la réponse de @Tobu, pour Windows, étant donné que des utilitaires similaires pour analyser du texte sont beaucoup plus difficiles à utiliser sous Windows, j'ai opté pour une solution multiplateforme. Vous pouvez suivre les instructions pour installer steamcmd pour votre plateforme à https://developer.valvesoftware.com/wiki/SteamCMD (Vous devrez l'exécuter une première fois pour terminer l'installation)

J'envisage de créer un projet github pour cela, afin de pouvoir auto-construire les binaires deno avec cette intégration, ce qui vous éviterait d'avoir à le faire. installer deno pour l'exécuter. Je mettrai à jour si je termine ça.

J'ai un script un peu plus complet dans un gist github si vous voulez y jeter un œil : https://gist.github.com/josh-hemphill/25f73281faf08f0be0ed72b2cd2aa1da

Utilisation de Deno pour le script, j'ai obtenu la même chose avec un code comme celui-ci.

// ran using deno run -A ./this-script.ts <my username> <steam library directory>
let user = Deno.args[0]
let lib = Deno.args[1]
await Deno.run({cmd:['steamcmd','+login',user,'+quit']}).status()
const p = Deno.run({
  cmd: [
    "steamcmd",
    "+force_install_dir",
    lib,
    "+login",
    user,
    "+apps_installed",
    "+quit",
  ],
  stdout: "piped",
});
await p.status();
const output = new TextDecoder().decode(await p.output());

const games = output.split("\n").filter((v) => v.startsWith("AppID")).map(
  (v) => {
    const cols = v.split(" : ");
    return {
      id: cols[0].split(" ")[1],
      name: cols[1].slice(1, cols[1].length - 2),
      dir: cols[2].replace(" \r", ""),
    };
  },
);

for (const game of games) {
  await Deno.run({
    cmd: [
      "steamcmd",
      "+force_install_dir",
      lib,
      "+login",
      user,
      "+app_update",
      game.id,
      "validate",
      "+quit",
    ],
  }).status();
}

0 votes

Mise à jour de ce qui s'est passé. Il s'avère que steamcmd s'est bloqué ou a erré sur un sans causer réellement un code de sortie non nul, donc il a essayé de continuer et a paniqué. Je cherche maintenant à appeler directement l'api ou les DLLs de steam moi-même, mais ce n'est pas documenté dans ce but.

-1voto

user68442 Points 41

Voici une version mise à jour du script, qui ne s'embrouille pas avec les dlc's : https://gist.github.com/bernstein82/89384f9b7e05544e582e3b5267ad4583

je recommande également d'installer autoit avec scoop, afin de pouvoir le supprimer sans effets secondaires.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X