我正在尝试创建一个脚本来通过Powershell创建一个ini文件来禁用Windows UAC。$functionText = @"`[Options`]UpdateKey=04/28/2015 12:50:27 AMWINDOW_LEFT=258WINDOW_TOP=149WINDOW_WIDTH=666WINDOW_HEIGHT=519WINDOW_MAX=0BackupDir=C:\Windows\System32UpdateCheck=1Language=1033(App)Sun Java=FalseNewVersion=5.05.5176SkipUAC=1FinderInclude1=PATH|C:\|*.*|RECURSEFinderInclude2=PATH|D:\|*.*|RECURSEFinderIncludeStates=1|1I see SkipUAC=1ShowCleanWarning=FalseShowFirefoxCleanWarning=FalseWipeFreeSpaceDrives=C:\RunICS=0CookiesToSave=*.piriform.com|google.com"@New-Item c:\Program Files\Ccleaner\Ccleaner.ini -type file -force -value $functionText我在源文本中不断收到无法识别的 token 。在C:\ PROGRA〜3 \ BEANYW〜1 \ Scripts \ 2480_C〜1 \〜SC52F〜1.PS1:1字符:17+ $ functionText = [Options] + CategoryInfo:ParserError:(:) [],ParseException + FullyQualifiedErrorId:无法识别的 token 我尝试在选项周围添加转义字符以查看是否会这样做-我认为问题出在[选项]一词附近 最佳答案 如果要使用here-string,请将@“本身放在一行上。$functionText = @"[Options]UpdateKey=04/28/2015 12:50:27 AMWINDOW_LEFT=258WINDOW_TOP=149WINDOW_WIDTH=666WINDOW_HEIGHT=519WINDOW_MAX=0BackupDir=C:\Windows\System32UpdateCheck=1Language=1033(App)Sun Java=FalseNewVersion=5.05.5176SkipUAC=1FinderInclude1=PATH|C:\|*.*|RECURSEFinderInclude2=PATH|D:\|*.*|RECURSEFinderIncludeStates=1|1I see SkipUAC=1ShowCleanWarning=FalseShowFirefoxCleanWarning=FalseWipeFreeSpaceDrives=C:\RunICS=0CookiesToSave=*.piriform.com|google.com"@New-Item "C:\Program Files\Ccleaner\Ccleaner.ini" -type file -force -value $functionTexthere-string的优点是您不必在字符串内转义任何内容。因此,如果有单引号或双引号就没关系了。只要ini文件代码中仅一行的文字字符串'“@'不存在,就可以保证安全。阅读more about here-strings。另外,如上面的示例所示,您需要在文件路径两边加上引号。关于powershell - powershell远程创建ini文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29908634/
10-13 07:52
查看更多