首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在powershell不起作用的情况下制作.lnk

在powershell不起作用的情况下制作.lnk
EN

Stack Overflow用户
提问于 2015-01-09 18:27:51
回答 1查看 110关注 0票数 0

我想让我的scvmm插件自动创建vm bakcups的快捷方式。我在主机上使用powershell-cmdlet:

代码语言:javascript
运行
复制
string command2 = "$shell = New-Object -ComObject WScript.Shell;";
foreach (var vm in VMs)
{
    command2 = command2 + string.Format("${1} = shell.CreateShortcut(\"{0}\\{1}\\{2}.lnk\"); ${1}.TargetPath = \"..\\_VMBackup\\{2}\\{1}\"; ${1}.Save();", backupDir, vm.Name, date);
}

下面是我调用它们的方式:

代码语言:javascript
运行
复制
PowerShellContext.ExecuteScript<Host>(string.Format("Invoke-SCScriptCommand -Executable \"{0}\" -VMHost (Get-SCVMHost -ID \"{1}\") -CommandParameters \"{2}\" -RunAsynchronously -TimeoutSeconds 360000", PowershellPath, VMs.First(), command2), (vms, error) => { if (error != null) { } else { } });

但似乎有些地方不对劲,因为我无法正确执行,即使我在shell中随意尝试它也能正常工作。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-10 07:08:54

您在string.Format中的"shell“变量之前忘记了一个"$”

尝试:

代码语言:javascript
运行
复制
command2 = command2 + string.Format("${1} = $shell.CreateShortcut(\"{0}\\{1}\\{2}.lnk\"); ${1}.TargetPath = \"..\\_VMBackup\\{2}\\{1}\"; ${1}.Save();", backupDir, vm.Name, date);

而不是:

代码语言:javascript
运行
复制
command2 = command2 + string.Format("${1} = shell.CreateShortcut(\"{0}\\{1}\\{2}.lnk\"); ${1}.TargetPath = \"..\\_VMBackup\\{2}\\{1}\"; ${1}.Save();", backupDir, vm.Name, date);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27858537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档