0

尝试创建启动 Powershell 复制项任务的计划任务。(为了减轻双跳问题”)在 *.ps1 文件中使用 copy-item 命令并调用这对我来说不是首选方式,因为我计划在此示例运行后即时构建路径名称。

以下按预期工作:

Invoke-Command -session $mysession -ScriptBlock { schtasks /create /RU myuser /RP mypasswd  /TN "Temp Task Copy-Item" /TR "powershell -ExecutionPolicy Bypass -command  copy-item -path \\192.168.1.1\share\Folder -Destination C:\Temp" /SC ONCE /ST 22:35} 

但是,当我想复制到带有空格 C:\Program Files (x86)\Temp 而不是C:\Temp的路径时,神奇的语法是什么 想想我已经尝试了所有反引号组合方式但没有运气 ;-)

4

2 回答 2

0

为我的问题找到了解决方法:我跳过使用 Copy-Item 并使用普通 CMD 进行复制:

#Set Source & Dest
$source = "\\192.168.1.1\share\Folder\*"
$dest = "C:\Program Files (x86)\Temp"

#Build command (Note: Single Quotes +"'" will appear in Schedueld Task as Double Quotes
$copycmd = "schtasks /create /RU myuser/RP mypasswd  /TN `"Temp Task Copy-Item`" /SC ONCE /ST 22:35 /TR `"cmd /c copy "+"'"+"$source"+"'"+" "+"'"+"$dest"+"'"+" "
#Run Command
Invoke-Command -session $mysession -ScriptBlock { cmd /c  "$args"} -ArgumentList $copycmd
于 2013-08-23T16:57:35.607 回答
0

尝试在带有空格的路径周围使用单引号,它会起作用。

Invoke-Command -session $mysession -ScriptBlock { schtasks /create /RU myuser /RP mypasswd  /TN "Temp Task Copy-Item" /TR "powershell -ExecutionPolicy Bypass -command  copy-item -path \\192.168.1.1\share\Folder -Destination 'C:\Program Files (x86)\Temp'" /SC ONCE /ST 22:35} 
于 2013-08-22T17:28:28.303 回答