26

I just tried to start a game I haven't played in some time, and Steam has informed me that I need to wait for an unspecified period of time while it converts the game data into a 'new, more efficient format':

enter image description here

Is there a way to do this pro-actively for all games in one batch process (ie: a command line parameter or similar so that they're all done when I want to do them) rather than waiting until the point in time I want to play the game and doing them one at a time?

3
  • 1
    You can do this individually without starting the game up by forcing steam to revalidate the game cache for each game, but that's not much help for fixing all games at once still. Commented Dec 5, 2012 at 10:23
  • It's horrible, but you could delete them all and let Steam download them all again!
    – Neon1024
    Commented Dec 5, 2012 at 10:50
  • 4
    Not all that long, but the point was more "I don't want to have to wait for you to do random maintenance when I want to play a game" more than a complaint on the amount of time it takes.
    – kalina
    Commented Dec 5, 2012 at 11:44

1 Answer 1

14

There is a shell command you can use to force verification of a game:

steam://validate/<id> (replace with the id number of the game)

According to valve, this will open steam if it is not running. If this works (not tested) it is a simple matter of making a batch file (plain text file named with .bat extension) such as:

call steam://validate/<idOfGame1>
call steam://validate/<idOfGame2>
pause

(call asks the batch file to delay execution of the next command until control is returned from the first command).

Try it with only one game and see if and when control is returned to the batch file to ensure the cmd box doesn't sit there forever waiting for control to be returned.

A quick way under (windows 7 at least) to get the app id numbers of everything installed is to go into the steam folders and find the user setting folder (\userdata\), then select all the app id folders, hold the shift key and right+click, then pick "copy as path". Paste this into a text file and then find+replace the path with call steam://validate/

8
  • Validating will cause the ENTIRE game to be read from the hard-drive. I don't suppose there's a way to check if the game needs to be converted without validating the entire game? Commented Dec 5, 2012 at 19:17
  • When I do call steam://validate/gameidinquestion I get 'steam:' is not recognized as an internal or external command, operable program, or batch file - am I missing something?
    – kalina
    Commented Dec 5, 2012 at 19:19
  • 1
    try it with call steam.exe steam://validate/<id> (possibly also add if needed -login USERNAME PASSWORD). The valve docs say steam:\\ can be run from the start->run prompt, but perhaps not from a cmd box.
    – horatio
    Commented Dec 5, 2012 at 19:30
  • 2
    Ultimately I wanted to do something like this, but as per above, running steam.exe additional times simply passes the command line parameters to the existing instance of steam
    – kalina
    Commented Dec 6, 2012 at 9:35
  • 1
    That is the same thing as I suggested, only it automagically finds the folders instead of the hard-coded text based find'n'replace I suggested (and therefore better). If only there were an "unattended" switch in steam.
    – horatio
    Commented Dec 6, 2012 at 15:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .