0

我正在尝试添加-nopreservetime到此代码。我不确定在哪里或如何添加它,我尝试了不同的方法但没有结果。

# Setup session options 
$sessionOptions = New-Object WinSCP.SessionOptions 
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp 
$sessionOptions.HostName = "#######.com" 
$sessionOptions.UserName = "#####" 
$sessionOptions.Password = "#####" 
$sessionOptions.SshHostKeyFingerprint = "#####" 
$sessionOptions.Timeout = "##" 

$TransferOptions.PreserveTimestamp = $false 

$session = New-Object WinSCP.Session 
$Session.SessionLogPath = "C:\Users\user1\Desktop\Winscp\TEST\sessionlog.txt" 
$Session.debugLogPath = "C:\Users\user1\Desktop\Winscp\TEST\debugsessionlog"+$date+".txt"

try 
{ 
    Write-Host $date,("Connecting to FTP site.") 
    # Connect 
    $session.Open($sessionOptions) 
    Write-Host $date,("Connected to FTP site.") 

    $transferOptions = New-Object WinSCP.TransferOptions
    $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary 

    # Upload files, collect results 
    $transferResult = $session.PutFiles("$localPath", "$remotePath", $False, $transferOptions)
}

这通常是:

$transferResult = $session.PutFiles($localPath, $remotePath) 

我只是想禁用保留时间戳。我在 GUI 中关闭了它,但它在powershell_ise.exe

上面的代码在日志中返回:

2015-07-20 08:52:44.635 脚本:放置 -nopermissions -preservetime -transfer="binary" -- "C:\Users\user\Desktop\Winscp############*. pdf" "/OUTGOING/TEST#####/##/"

4

1 回答 1

0

使用TransferOptions.PreserveTimestamp

$transferOptions.PreserveTimestamp = $False

请参阅将传输设置脚本开关转换为基于 .NET 程序集的代码


你实际上已经有那段代码,但是在错误的地方。您设置了一个未初始化变量的属性。

您必须在初始化后移动该行$transferOptions

$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary 
$transferOptions.PreserveTimestamp = $False
于 2015-07-20T15:10:34.043 回答