У меня есть пакет служб SSIS, который передает параметр даты из переменной Package в пакетный файл в качестве параметра. Назначение пакетного файла состоит в том, чтобы переименовать заранее определенный файл в заранее определенном месте, например суффикс даты добавляется к имени файла, где суффикс даты имеет формат «_YYYY_MM».
Проблема, с которой я сталкиваюсь, заключается в том, что при запуске пакета SSIS BIDS 2005 в среде IDE следующий пакетный файл переименовывает файл без начального нуля в месяце. однако, когда я запускаю его через наш планировщик на нашем тестовом сервере, файл правильно переименовывается, так что месяц имеет начальный ноль.
Возможно, это связано с разницей потенциалов в драйверах?
Вот код для пакетного файла:
ECHO OFF
SET CurrentFolder=%~dp0
SET ThisFileName=%~n0
REM The following line populates shared path variables used below
CALL %CurrentFolder%\Membob_SetPaths.cmd
SET LogFile=%LogFolder%\%ThisFileName%.log
ECHO %date% %time% - *** BOJ %CurrentFolder%%ThisFileName%.cmd *** >> %LogFile%
SET ReportingDate=%1
ECHO Logging to: %LogFile%
ECHO ReportingDate=%ReportingDate% >> %LogFile%
REM Rename the file from MEMBOB.csv to MEMBOB_YYYY_MM.csv, using the passed ReportingDate
REM But before we rename, delete any file that might already have that target name.
@For /F "tokens=1,2,3 delims=/ " %%A in ("%ReportingDate%") do @(
Set Month=%%A
Set Day=%%B
Set Year=%%C
)
REM if %Month% LSS 10 Set Month=0%Month%
SET NewFileName=MEMBOB_%Year%_%Month%.csv
if exist %ExportFolder%\%NewFileName% del %ExportFolder%\%NewFileName%
REM Rename the file as described above
ECHO Rename %ExportFolder%\Membob.csv to %NewFileName% >> %LogFile%
rename %ExportFolder%\Membob.csv %NewFileName%
ECHO %date% %time% - *** EOJ %CurrentFolder%%ThisFileName%.cmd *** >> %LogFile%
Я действительно нуб с командными файлами.
Что бы я хотел сделать, если кто-то может помочь:
Настройте код так, чтобы он соответствовал начальному нулю, если длина месяца, когда он оценивается как строка, составляет <2. </p>
Во-вторых, я хотел бы, чтобы эта процедура переименования файла была более общей, чтобы я мог передать полный путь к имени файла в качестве дополнительного параметра и иметь суффикс, прикрепленный к ЛЮБОМУ файлу.
Может ли кто-нибудь с большим мастерством BATCH помочь?