Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

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?

share|improve this question
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. –  Matthew Scharley Dec 5 '12 at 10:23
    
It's horrible, but you could delete them all and let Steam download them all again! –  DavidYell Dec 5 '12 at 10:50
    
So how long did it take for this one? –  ヴァイシャリ Dec 5 '12 at 11:42
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 Dec 5 '12 at 11:44

1 Answer 1

up vote 13 down vote accepted

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/

share|improve this answer
    
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? –  BlueRaja - Danny Pflughoeft Dec 5 '12 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 Dec 5 '12 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 Dec 5 '12 at 19:30
1  
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 Dec 6 '12 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 Dec 6 '12 at 15:02

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.