パッケージ変数からバッチファイルにパラメータとして日付パラメータを渡すSSISパッケージがあります。バッチファイルの目的は、日付の接尾辞が「_YYYY_MM」の形式であるファイル名に日付の接尾辞が追加されるなど、事前に決定されたファイルの名前を所定の場所に変更することです。
私が抱えている問題は、IDEでSSIS BIDS 2005パッケージを実行すると、次のバッチファイルがその月の先行ゼロなしでファイルの名前を変更することです。ただし、テストサーバーのスケジューラーで実行すると、ファイルの名前が適切に変更され、月の先頭がゼロになります。
ドライバーの潜在的な違いが原因でしょうか?
バッチファイルのコードは次のとおりです。
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未満の場合、先行ゼロをタックするようにコードを調整します。
次に、このファイル名変更手順をより一般的にして、ファイル名のフルパスを追加のパラメーターとして渡し、任意のファイルにサフィックスを追加できるようにします。
より多くのバッチ能力を持つ誰かが支援できますか?