我正在尝试通过CMD运行PS表达式,但出现错误
powershell -command "Get-ChildItem <FOLDERPATH> -Recurse -file | % { "{0} {1}" -f $_.FullName, [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_.FullName).FileVersion }
答案 0 :(得分:0)
我已经确认,如安东尼·斯金格(Anthony Stringer)所建议的,将单引号与双引号一起使用
powershell -command "Get-ChildItem <FOLDERPATH> -Recurse -file | % { '{0} {1}' -f $_.FullName, [System.Diagnostics.FileVersionInfo]::GetVersionInfo($_.FullName).FileVersion }
答案 1 :(得分:0)
问题是'%'字符和引号内的引号。请改用ForEach-Object。别名不应在脚本中使用。在格式字符串上使用撇号代替引号。
@ECHO OFF
SET "FOLDERPATH=C:/src"
powershell -NoLogo -NoProfile -Command ^
"Get-ChildItem '%FOLDERPATH%' -Recurse -File |" ^
"ForEach-Object { '{0} {1}' -f $_.FullName, [Diagnostics.FileVersionInfo]::GetVersionInfo($_.FullName).FileVersion }"