Bra*_*rad 7 powershell schtasks.exe
我正在使用与PowerShell的schtask命令.发生的问题是当它是C:\ Program Files \时它认为路径只是C:\ Program而路径的其余部分是争论.我试图通过使用""字段的前置和后置来逃避它但确实有所不同.我怎么能完成这个?我不能对路径进行硬编码,因为它可以在用户安装时更改.
我在Windows 7 x64中创建了这个.它创建脚本返回的任务.但是,当我在任务计划中查看它时,任务的属性,然后是操作,并点击编辑.它将程序显示为C:\ Program,然后将其余部分显示为参数.

脚本:
$folder = Split-Path $MyInvocation.MyCommand.Path -Parent
$app = "\Demon.DatabasePurge.exe"
$exe = $app.Insert(0, $folder)
schtasks /create /tn "Demon Purge Job" /sc daily /st 00:00:00 /tr $exe
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
$folder = Split-Path $MyInvocation.MyCommand.Path -Parent
$app = "\Demon.DatabasePurge.exe`""
$exe = $app.Insert(0, $folder)
$exe2 = $exe.Insert(0, "`"")
schtasks /create /tn "Demon Purge Job" /sc daily /st 00:00:00 /tr $exe2
Run Code Online (Sandbox Code Playgroud)
小智 13
我也遇到了这个问题..有这个问题的其他人的答案是包含单引号
/TR "'C:\Program Files (x86)\etc\test.exe'"
Run Code Online (Sandbox Code Playgroud)
我在Windows Server 2008 R2上遇到了同样的问题.虽然Microsoft支持表明你应该能够用"我从来没有工作,但单引号工作."此外,带有空格的参数也可以用单引号括起来:
schtasks /create /f /tn "Test" /tr "'c:\program files\test.bat' arg1 'arg 2 with spaces' arg3" /sc Daily /st 00:00
Run Code Online (Sandbox Code Playgroud)
或者在构建要执行的字符串时(以及使用$ folder变量):
$createTask = "schtasks /create /f /tn `"Demon Purge Job`" /tr `"'$folder\Demon.DatabasePurge.exe' arg1 'arg 2 with spaces' arg3`"" /sc daily /st 00:00
Invoke-Expression $createTask
Run Code Online (Sandbox Code Playgroud)
第一个示例生成以下任务操作屏幕:

| 归档时间: |
|
| 查看次数: |
10629 次 |
| 最近记录: |