In your project file add an Import like
<Import Project="$(CustomProps)" Condition="Exists($(CustomProps))" />
Just add it where the other imports are, or if you don't want to repeat yourself for each configuration/platform combination, add it either below the <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
line (in which case other property sheets can override values from it) or above the <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
line (so you can apply 'final' values with your custom property sheet).
Then on the commandline pass /p:CustomProps=/path/to/props
edit msbuild also has this functionality built-in, just figured this is sort of a duplicate of How to set PreProcessorDefinitions as a task propery for the msbuild task. Except there if you want to control where the import happens you'd have to choose between ForceImportBeforeCppTargets and ForceImportAfterCppTargets.