2013-11-26 21 views
0

我想创建一个PowerShell命令读取注册变量,然后执行命令。它从使用CMD的命令行执行此操作,并在SYSTEM下运行。使用命令PowerShell功能不执行CMD

我有以下代码:

powershell.exe -ExecutionPolicy ByPass -WindowStyle Minimized -Command 
"$ErrorActionPreference = 'silentlycontinue' |` 
New-Variable -name UserNameForSapFolderRemoval -Value (get-itemproperty 'HKCU:\Volatile Environment' |` 
Select-Object -ExpandProperty UserName) |` 
Remove-Item $("C:\Users\"+$UserNameForSapFolderRemoval +"\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Sapgui 7.30") -Force -Recurse |` 
Remove-Variable -Name UserNameForSapFolderRemoval" 

但它返回:

The string is missing the terminator 

我添加了“字符,但没有更迭

任何想法,我怎么能得到这个PowerShell的命令运行成功?

回答

1

从注册表中解析用户名太复杂了,因为已经有$env:username。尝试这样的事情,

powershell -command { rm -force -recurse "c:\users\$env:username\appdata\whatever" } 
+0

我使用它,因为脚本在SYSTEM下运行。我尝试了{和}字符,但没有成功。 – RalJans

+0

@ user2955447在问题中包含这样一些信息是有意义的。 – vonPryz

+0

嗨VonPryz,你对。抱歉! – RalJans