使用 WinSCP 脚本复制具有名称标准的文件
Copy a file with a name criteria using WinSCP scripting
我有一个 Test
文件夹,其中包含具有以下两种文件名的多个文件:
Cycle2605.zip
Cycle2605_P.zip
Cycle2705.zip
Cycle2705_P.zip
我设法做的是,通过 WinSCP SFTP 将所有文件从文件夹移动到其他服务器,如下面的代码所示。
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
您可以排除文件 matching certain pattern with -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
在这种情况下,直接在 source path 中使用 Windows 通配符更容易:
put D:\Users\AALADELA\Desktop\Test\Cycle????.zip /cygdrive/d/VB_SHARE/astroQA/AFP/in/
我有一个 Test
文件夹,其中包含具有以下两种文件名的多个文件:
Cycle2605.zip
Cycle2605_P.zip
Cycle2705.zip
Cycle2705_P.zip
我设法做的是,通过 WinSCP SFTP 将所有文件从文件夹移动到其他服务器,如下面的代码所示。
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
您可以排除文件 matching certain pattern with -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
在这种情况下,直接在 source path 中使用 Windows 通配符更容易:
put D:\Users\AALADELA\Desktop\Test\Cycle????.zip /cygdrive/d/VB_SHARE/astroQA/AFP/in/