我创建了以下文件执行特定任务的指示下载的文件重命名为另一个目录:搬迁与WinSCP赋予脚本
DataCollection.bat
- 打开的WinSCP,并在dailyimport.txt
Dailyimport.txt
运行命令 - 登录到远程FTP站点,并检索三个*.csv
文件,并将它们重命名为目标文件夹。
后来执行一个PHP脚本,将三个CSV文件中的数据导入到我的数据库中。
我需要什么,现在做的,在那里我有一个问题是:
- 移动下载的文件(现在本地主机上)到一个新的目录,并再次重命名它们,通过保持文件名称并添加时间戳。
- 将FTP服务器上的文件移动到新目录中。
请看看我的代码,我有如下:
DataCollection.bat:
@echo off
winscp.com /script=dailyimport.txt
if %ERRORLEVEL% neq 0 goto error
echo Upload succeeded, moving local files
move "C:\DataImport\modules_flat_file_footer.csv" "C:\DataImport\Imported\modules_flat_file_footer.csv.%TIMESTAMP#yyyymmss%"
exit /b 0
:error
echo Upload failed, keeping local files
exit /b 1
dailyimport.txt:
# Connect
open ftp://myftpdetails/
# Change remote directory
cd /downloads/MySQL
# Force binary mode transfer
option transfer binary
# Download file to the local directory
get modules_flat_file_footer_*.csv "C:\DataImport\modules_flat_file_footer.csv"
# Disconnect
close
# Exit WinSCP
exit
也许一个愚蠢的问题,但如何批处理文件从PowerShell的有什么不同?还有什么额外的软件需要安装在Windows服务器上?道歉,即一个文件是由于测试,每个文件将有不同的名称,即页脚,标题,行。 导入的文件夹用于稍后将导入数据的PHP脚本。一旦导入成功运行,我希望它被移到这里。 –
我的PHP脚本导入: LOAD DATA LOCAL INFILE 'DataImport // modules_flat_file_line.csv' REPLACE INTO TABLE daily_lines CHARACTER SET处理latin1 FIELDS TERMINATED BY '' 忽略1号线 因此,重命名一旦PHP脚本有运行 –
我已经添加了完整的批处理文件解决方案 –