Ошибка (530) При попытке загрузки каталога с помощью Powershell на FTP-сервер [дубликат]

Это невозможно, потому что JSP выполняется сначала на стороне сервера, затем JavaScript выполняется на стороне клиента.

Вы все равно можете использовать c: forEach для запустите $ {configureGroupMap} , но вы не можете выполнить сравнение по groupMap.key и группе напрямую.

Вместо этого решением в этом случае является назначение серверной стороне groupMap.key стороне клиентской переменной в javascript. Затем используйте javascript для проверки if, а не c: if .

Я изменил ваш пример ниже

  function checkSelection (группа  , tvalue) {alert (group);  оповещения (TValue);  & lt; c: forEach items = "$ {stringshm}" var = "groupMap" & gt;  alert ("& lt; c: out value =" $ {groupMap.key} "/ & gt;");  var groupKey = "& lt; c: out value =" $ {groupMap.key} "/ & gt;";  if (groupKey == group) {alert ("& lt; c: out value =" $ {groupMap.key} "/ & gt;");  var groupValue = "& lt; c: out value =" $ {groupMap.value} "/ & gt;";  if (groupValue == tvalue) {alert ("оба равны");  }} & lt; / c: forEach & gt;  }  
1
задан Martin Prikryl 3 August 2015 в 16:27
поделиться

1 ответ

Цикл (или даже лучше рекурсия) - единственный способ сделать это изначально в PowerShell (или вообще .NET).

$source = "c:\source"
$destination = "ftp://username:password@example.com/destination"

$webclient = New-Object -TypeName System.Net.WebClient

$files = Get-ChildItem $source

foreach ($file in $files)
{
    Write-Host "Uploading $file"
    $webclient.UploadFile("$destination/$file", $file.FullName)
} 

$webclient.Dispose()

Обратите внимание, что приведенный выше код не рекурсирует в подкаталоги .


Если вам требуется более простое решение, вам нужно использовать стороннюю библиотеку.

Например, с помощью сборки WinSCP .NET :

Add-Type -Path "WinSCPnet.dll"
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.ParseUrl("ftp://username:password@example.com/")

$session = New-Object WinSCP.Session
$session.Open($sessionOptions)

$session.PutFiles("c:\source\*", "/destination/").Check()

$session.Dispose()

Вышеупомянутый код перезаписывается.

См. https://winscp.net/rus/docs/library_session_putfiles

(я автор WinSCP)

6
ответ дан Martin Prikryl 17 August 2018 в 09:55
поделиться
  • 1
    Большое спасибо, это фантастика. Я скачал winscp и посмотрю на него. – HMan06 3 August 2015 в 21:21
  • 2
    The given path's format is not supported. Дает эту ошибку. – Shardul 15 August 2017 в 20:05
  • 3
    @Shardul Если у вас есть проблема, задайте вопрос. – Martin Prikryl 15 August 2017 в 21:02
Другие вопросы по тегам:

Похожие вопросы: