如何在批处理脚本中调用powershell命令来逃避单引号

时间:2018-02-07 13:22:53

标签: powershell batch-file

在你说什么之前,我做了一次搜索,找不到任何帮助我的东西,我自己也尝试了一些东西,而不是到目前为止工作的东西。

我不确定它是否与PowerShell或批次相关,说实话......无论如何......

我有以下脚本:

setlocal
if "%IsCollection%"=="y" set browsetext=Please choose the location where the 
games for %GameTitle% are installed:
if not "%IsCollection%"=="y" set browsetext=Please choose the location where 
%GameTitle% is installed:

set "psCommand="(new-object -COM 'Shell.Application')^
.BrowseForFolder(0,'%browsetext%',0x00000200,0).self.path""

for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "choice=%%I"

我的问题是,当变量%GameTitle%包含单引号时,例如“Director's Cut”,它会阻止 browseforfolder 打开窗口,导致错误。

如何解决这个问题?

谢谢。

只需注意:如果重要,则从外部.ini文件中读取%GameTitle%变量。

1 个答案:

答案 0 :(得分:0)

用两个代替单引号:

set GameTitle=%GameTitle:'=''%