Скопируйте файл с критериями имени, используя сценарии WinSCP - PullRequest
1 голос
/ 26 июня 2019

У меня есть папка Test, которая содержит несколько файлов с двумя типами имен файлов, как показано ниже:

Cycle2605.zip
Cycle2605_P.zip
Cycle2705.zip
Cycle2705_P.zip

Мне удается переместить все файлы из папки на другой сервер через WinSCPSFTP, как показано в приведенном ниже коде.

open sftp://user:password@hostname/ -hostkey="ecdsa-sha2*******"
put D:\Users\AALADELA\Desktop\Test /cygdrive/d/VB_SHARE/astroQA/AFP/in
exit

Но как мне переместить файл, который в имени файла не содержит _P, к месту назначения вместо перемещения всего файла?

open sftp://user:password@hostname/ -hostkey="ecdsa-sha2*******"
if <filename not contain _p> echo put D:\Users\AALADELA\Desktop\Test /cygdrive/d/VB_SHARE/astroQA/AFP/in
exit

1 Ответ

2 голосов
/ 26 июня 2019

Вы можете исключить файлы , соответствующие определенному шаблону с помощью -filemask switch :

put -filemask=|*_P.zip D:\Users\AALADELA\Desktop\Test /cygdrive/d/VB_SHARE/astroQA/AFP/in

Или вы можете выбрать только те файлы, которые вам нужны, если это разрешено соглашением об именах файлов, например ::

put -filemask=Cycle????.zip D:\Users\AALADELA\Desktop\Test /cygdrive/d/VB_SHARE/astroQA/AFP/in

В этом случае проще использовать подстановочный знак Windows непосредственно в исходном пути :

put D:\Users\AALADELA\Desktop\Test\Cycle????.zip /cygdrive/d/VB_SHARE/astroQA/AFP/in/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...