Batch file 调用文件时选择周数的Windows批处理脚本
我已经考虑在SSIS包中加入一个批处理文件,通过winscp.com将一个文件放入SFTP站点,因此需要在最后编写一个批处理文件,将所需文件放入SFTP站点,我已经编写了下面的过程,但我需要帮助调用类似文件名的文件#(例如,Filename_1,Filename_2…Filename_34)并位于M:\Test\DATA OUT文件夹。我的感觉是在SET v_week=%1之后添加一个if语句(即if[%v_week%]=[]SET v_week=week),但我不确定这会是什么,因为我以前从未编写过批处理文件Batch file 调用文件时选择周数的Windows批处理脚本,batch-file,ssis,Batch File,Ssis,我已经考虑在SSIS包中加入一个批处理文件,通过winscp.com将一个文件放入SFTP站点,因此需要在最后编写一个批处理文件,将所需文件放入SFTP站点,我已经编写了下面的过程,但我需要帮助调用类似文件名的文件#(例如,Filename_1,Filename_2…Filename_34)并位于M:\Test\DATA OUT文件夹。我的感觉是在SET v_week=%1之后添加一个if语句(即if[%v_week%]=[]SET v_week=week),但我不确定这会是什么,因为我以前从未
SET v_week=%1
echo option batch continue > SFTP_Filename_Put.txt
echo option confirm off >> SFTP_Filename_Put.txt
echo open target >> SFTP_Filename_Put.txt
echo lcd "M:\Test\DATA OUT" >> SFTP_Filename_Put.txt
echo cd / >> SFTP_Filename_Put.txt
echo put "M:\Test\DATA OUT\Filename_%v_week%.txt" /Filename_%v_week%.txt >> SFTP_Filename_Put.txt
echo exit >> SFTP_Filename_Put.txt
M:\temp\apps\WinSCP\winscp.com/script="M:\Development\SFTPBatchFiles\SFTP_Filename_Put.txt"
del SFTP_Filename_Put.txt
这样,它将自动获取最后创建的
.fyi
文件并获取最后2个字符
并设置V_week
变量
@echo off&cls
setlocal EnableDelayedExpansion
for %%a in (*.fyi) do set $WeekNb=%%~na
set $WeekNb=%$WeekNb:~-2%
set v_week=%$WeekNB%
echo The Week Number Is : %v_week%
pause
是否要自动获取周数?…基于当前日期?我需要批处理文件来查找文件名_week#。仅供参考,我的SSIS包中有一个名为v_week的变量。此包每周四运行,今天我正好运行第35周;其中第35周开始于2014年03月23日,结束于2014年03月29日,包已处理于2014年04月03日您的代码已经这样做了:
echo put“M:\Test\DATA OUT\Filename\uu%v\u week%.txt”
。对不起,你用不必要的细节分散了我们的注意力,而不是重点。请清楚地解释你的问题:你现在有什么和你想要什么;不要包括与问题无关的细节……你好,萨查迪,可以帮助我理解如何将你的脚本与我的脚本结合起来。因为我试图如果这样做,它将返回v_week作为-2。感谢您的时间和考虑。我的代码是否单独工作?您是否获得了周数?我在末尾放置了一个暂停,您可以进行测试。