Пакетный файл WinSCP. Скопировать в две локальные папки

У меня есть пакетный файл, который я создал, который перемещает файлы с сервера UNIX (Solaris) на компьютер с Windows XP. В процессе он удаляет файлы с сервера UNIX.

Что я хотел бы сделать, так это после того, как файлы будут перенесены на «локальный» компьютер (на котором установлена ​​программа WinSCP), я бы хотел скопировать некоторые файлы в другую локальную (подключенный сетевой диск) папку. .

Я хочу скопировать (только) файлы, которые были помещены в папку C:\DICOM, в папку L:\dicomrt.

Вот что я использую для начальной порции:

# Created by Daniel E. Cronk to transfer images from the Pinnacle RT station to the LinAc computer.

# Comment out the next two lines to test
option batch on
option confirm off

# Connect - format: user:password@host
open ftp://username:password@hostname

# Change remote directory
cd /files/network/DICOM

# Change Local Directory
lcd C:\DICOM

# Force binary mode transfer
option transfer binary

# Download backup file to the local directory
get -delete RT*.dcm
get -delete CT*.dcm
get -delete MR*.dcm

# Disconnect
close

# Exit WinSCP
exit

person Community    schedule 10.08.2015    source источник
comment
Что это за файлы? Как их отличить от других?   -  person Martin Prikryl    schedule 11.08.2015
comment
Спасибо. Да, я бы скопировал файлы RT * .dcm из каталога A в каталог B. Я знаю кое-где, где можно добавить xcopy, но я не уверен, проще ли создать новый командный файл или Я могу включить его в существующий командный файл.   -  person    schedule 11.08.2015
comment
Я предполагаю добавить что-то вроде: xcopy C: \ DICOM \ RT * .dcm L: \ dicomrt в командный файл, я просто не уверен, как я могу это сделать.   -  person    schedule 11.08.2015


Ответы (1)


В WinSCP нет команды для копирования файлов с локального на локальный, поскольку в этом нет необходимости, так как вы можете использовать copy команда Windows (или xcopy, если вам так больше нравится).

Если ваш сценарий WinSCP называется script.txt, оберните его в пакетный файл Windows, например:

@echo off

winscp.com /script=script.txt /log=winscp.log

copy C:\DICOM\RT*.dcm L:\dicomrt\

См. Аналогичный пример Перемещение локальных файлов в другое место после успешной загрузки.


Или вы можете объединить два файла в один, например:

@echo off

winscp.com /log=winscp.log /command ^
    "open ftp://username:password@hostname" ^
    "option batch on" ^
    "cd /files/network/DICOM" ^
    "lcd C:\DICOM" ^
    "get -delete RT*.dcm" ^
    "get -delete CT*.dcm" ^
    "get -delete MR*.dcm" ^
    "close" ^
    "exit"

copy C:\DICOM\RT*.dcm L:\dicomrt\

Обратите внимание, что команда option confirm off не требуется в последних версиях WinSCP. WinSCP также теперь по умолчанию использует option batch abort (что может быть более подходящим, чем ваше option batch on).

См. https://winscp.net/eng/docs/scripting#using_scripting.

WinSCP также по умолчанию работает в двоичном режиме, поэтому option transfer binary также не требуется. И в любом случае это устаревший синтаксис, правильный синтаксис - get -transfer=binary -delete RT*.dcm.

person Martin Prikryl    schedule 11.08.2015
comment
спасибо, Мартин. Это сработало именно так, как я надеялся. Ценить это. - person ; 11.08.2015