我正在编写一个脚本,将Outlook签名移动到%APPDATA%\Microsoft\Signatures\
,但它没有按计划进行。
我想指示用户将“signature”文件夹放在桌面上,然后运行一个脚本,将签名文件夹中的所有项目移动到AppData文件夹。
我一直在阅读,看起来并不像将%userprofile%\Desktop\signatures\*
放入VBScript或PowerShell代码那么简单。我不明白为什么Windows资源管理器知道如何处理该路径,但PowerShell / VBScript不知道特殊文件夹是什么,但无论如何,我的代码都无效。
以下是我正在尝试使用VBScript的示例:
Dim desktop
Dim appdata
desktop = object.SpecialFolders("Desktop")
appdata = object.SpecialFolders("APPDATA")
With CreateObject("Scripting.FileSystemObject")
.MoveFile desktop\MET_Signature_Template\*, appdata\Microsoft\Signatures\test\
End With
我收到语法错误,但没有指出为什么错误。我尝试了一些我在这里找到的不同的东西,但没有用。
答案 0 :(得分:1)
如有疑问,请阅读documentation。
语法
object.SpecialFolders(objWshSpecialFolders)
参数
物体
WshShell 对象。
改变这个:
desktop = object.SpecialFolders("Desktop")
appdata = object.SpecialFolders("APPDATA")
进入这个:
Set sh = CreateObject("WScript.Shell")
desktop = sh.SpecialFolders("Desktop")
appdata = sh.SpecialFolders("APPDATA")
使用BuildPath
方法构建源路径和目标路径:
Set fso = CreateObject("Scripting.FileSystemObject")
source = fso.BuildPath(desktop, "MET_Signature_Template")
destination = fso.BuildPath(appdata, "Microsoft\Signatures\test")
fso.MoveFile source & "\*", destination & "\"
在PowerShell中你可以这样做:
$source = "$env:APPDATA\MET_Signature_Template"
$destination = Join-Path [Environment]::GetFolderPath('Desktop') 'Microsoft\Signatures\test'
Copy-Item "$source\*" $destination