Вот, пожалуйста:
@echo off
set "DSS_File_Location=N:\HYD\Precip_Grids\"
for /f "delims=" %%a in ('dir /b /a-d /od "%DSS_File_Location%*.dss"') do set "latest=%%a"
echo %latest%
Как это работает. Вы устанавливаете переменную под названием DSS_File_Location
со значением вашего пути.
Затем мы выполняем цикл for для каждого файла, используя команду dir, используя пустой формат и используя atribbutes /a-d
, что означает, что он исключит каталоги в команде dir, а затем отсортирует их по дате и времени как более старшие. dir /b /a-d /od "%DSS_File_Location%*.dss
Затем lasly мы используем токен %%a
и присваиваем его переменной с именем latest
, и мы повторяем его.
Чтобы помочь вам немного больше, узнайте об этих командах на вашем ПК. Откройте cmd.exe
и введите thr следующим образом:
for /?
set /?
dir /?
, чтобы получить некоторую помощь, только для команд, которые мы использовали в этом разделе. Вы можете увидеть больше команд, набрав help
в консоли cmd, а затем просто выполнив каждую интересующую вас команду с помощью переключателя /?
.
Некоторые советы, вы заметите, что я добавил к пути двойные кавычки, которые не будут допускать появления пробелов. Наконец, даже при том, что он будет работать с /
, лучше всего использовать стандарт Windows с обратными слешами в пути "N:\HYD\Precip_Grids\"
]
AFAIK, задачи в SSIS перестали работать на ошибке. Таким образом, если Ваш Выполнять Задачу SQL имеет statment как так в нем:
declare @count int
select @count = select count(*) from my_table
if @count < 1000
begin
raiserror('Too few rows in my_table',16,1)
end
else
begin
-- Process your table here
end
Необходимо получить результаты, которые Вы хотите.
Необходимо сделать свойство FailPackageOnFailure верным.. попытайтесь получить свойство FailPackageOnFailure конкретной задачи и присвоить верное значение. так, чтобы пакет был отказавшим.