I’m passing in several file paths as positional parameters to a script like this:
powershell -nologo -file .\Create-AnalysisProps.ps1 "14" "2010=10;2012=11;2013=12;2015=14" "d:\Program Files (x86)\Microsoft Visual Studio ##.0\Team Tools\Static Analysis Tools\FXCop\FXCopCmd.exe" "d:\Program Files (x86)\Microsoft Visual Studio ##.0\Team Tools\Static Analysis Tools\Rule Sets\" "d:\Program Files (x86)\Microsoft Visual Studio ##.0\Team Tools\Static Analysis Tools\FxCop\Metrics.exe" "d:\Program Files (x86)\Microsoft Visual Studio ##.0\Common7\IDE\mstest.exe"
I’m getting the following error:
D:\a6\RWS_Test_Batch_App\Microsoft_Build_Console_App\trunk\Create-AnalysisProps .ps1 : A positional parameter cannot be found that accepts argument 'Studio'.
Here’s the Param section of my script:
Param ( # VS Version [Parameter(Position=0)] [string]$VSVersion="2013", # Version Table [Parameter(Position=1)] [string]$VersionTableString="2010=10;2012=11;2013=12;2015=14", # FXCopCmdTemplate [Parameter(Position=2)] [String]$FXCopCmdTemplate="C:\VS ##\Test Tools\FXcopcmd.exe", # FXCopRulesTemplate [Parameter(Position=3)] [String]$FXCopRulesTemplate="C:\VS ##\Rule Sets\", # MSMetricsTemplate [Parameter(Position=4)] [String]$MSMetricsTemplate="C:\VS ##\Test Tools\Metrics.exe", # VSTest Template [Parameter(Position=5)] [String]$VSTestTemplate="C:\VS ##\Test Tools\MSTest.exe", # Output XML File Location [Parameter(Position=6)] [String]$outFilePath )
All my strings are wrapped in quotes. Any idea why this would behave this way? I have other scripts that accept file paths as strings with no problems…