我正在创建一个批处理文件,用于通过sftp将文件从Windows传输到Linux服务器。我正在使用PSFTP。我使用的方法是将所有移动文件的命令放在一个dat文件中,然后在通过psftp连接后执行该文件。
@echo off
SET /P uname=Please enter your UserId:
IF "%uname%"=="" GOTO Error
pause
echo mkdir /finreports/CUSTOM_DATA_UPLOAD/%uname%>> ftpcmd.dat
echo cd /finreports/CUSTOM_DATA_UPLOAD/%uname%>> ftpcmd.dat
echo lcd C:\images>> ftpcmd.dat
echo mput C:\images\*.jpg>> ftpcmd.dat
echo bye>> ftpcmd.dat
C:\software\psftp.exe -be username@100.1.100.1 -pw password -b ftpcmd.dat
del ftpcmd.dat
GOTO End
:Error
ECHO You did not enter your UserId
pause
现在我的问题是,如果mkdir因路径已经存在而失败,则不会执行其他命令。有没有办法在mkdir期间忽略错误。如果我在连接到psftp时使用-be,它会忽略所有我不想要的错误。
发布于 2018-09-05 11:06:42
您可以在尝试创建文件夹之前检查文件夹是否存在,而不是忽略错误。
if not exist "/finreports/CUSTOM_DATA_UPLOAD/%uname%" mkdir /finreports/CUSTOM_DATA_UPLOAD/%uname%
当然,如果任何更高级别的文件夹(如“finreports”或“CUSTOM_DATA_UPLOAD”)不存在,这将无效,但如果需要,您也可以采用类似的策略来创建它们。
希望有所帮助!
https://stackoverflow.com/questions/-100002563
复制相似问题