【发布时间】:2014-11-19 22:05:53
【问题描述】:
在将文件传输到 sftp 服务器时需要帮助。我们有一个包含 3 个阶段的脚本。
驱动程序
ECHO off
path\file.sftp.sc.bat
驱动程序 -file.sftp.sc.bat
@ECHO OFF
set PUTTY_HOME= LOCATION\ PUTTY
set PATH=%PUTTY_HOME%;%PATH%
REM ECHO %DOWNLOADDATA1%
set DOWNLOADDATA1="N"
IF EXIST LOCATION\"FileName.txt" SET DOWNLOADDATA1="Y"
ECHO %DOWNLOADDATA1%
IF %DOWNLOADDATA1% =="N" goto unsucc
ECHO %DOWNLOADDATA1%
ECHO GETTING DATA FILE
psftp -password -b LOCATION\Summary_LOC_SC.ftp user name
ECHO %ERRORLEVEL%
IF %ERRORLEVEL% EQU 0 LOCATION\ Success_email.vbs
goto end
IF %ERRORLEVEL% NEQ 0 LOCATION\UNSuccess_Email.vbs
goto end
:UNSUCC
ECHO %DOWNLOADDATA1%
ECHO UNSUCCESSFUL
LOCATION\UNSuccess_FNF_Email.vbs
:END
驱动程序-Summary_LOC_SC.ftp
cd/fall2014
1cd LOCATION OF FILE
put "File.Txt"
quit
现在,文件名要随着日期改变,我的意思是,今天是file20141118.txt,明天是file20141119.txt。
在上面的脚本中是如何实现的,所以会拉起当前文件。
【问题讨论】:
-
Martin,在第二个驱动程序中,我们有“FileName.txt”,在第三个驱动程序中,我们有“File.Txt”,这是相同的(错字)。所以,我们需要正确传输这个文件。但是当文件生成时,它将生成添加当前日期。如 File20141110.txt。第二天将是 20141112.txt。所以我的问题是,这个脚本如何知道选择哪个文件,因为文件名每天都在变化。对。
-
我明白了,所以根据我上面链接的问题修改批处理文件以生成预期的名称(带有今天的日期)。
-
我们不能真正在上面的脚本中使用 File.Txt 因为文件名今天和明天会不同等等。
-
好吧,要么你不了解我,要么我不了解你。我知道文件名每天都会不同。名字里的日期变了,对吧?因此,您也可以使用我链接的示例生成(或计算)实际名称。或者是否有任何其他组件(时间戳除外)每天都会发生变化?
-
我有一个脚本可以根据当前时间戳修改文件..我想自动化这个过程。因此,第一个脚本将更改文件名,上面的脚本会将文件 sftp 到目标位置。但是上面的脚本不能正常工作,因为文件名是 statIC。我们在第二个脚本中使用 File.txt,而文件名已经更改为 File20141120.txt
标签: batch-file cmd sftp