Задание SQL игнорирует цикл в пакетном файле - PullRequest
1 голос
/ 25 июня 2019

У нас есть платежные ведомости на сервере.Они организованы в папки по годам, а затем в эту папку в несколько папок по месяцам.Я пытаюсь создать задание SQL, чтобы перейти в папку с заявлениями, открыть папку за год предыдущего месяца (так как она запускается первого числа каждого месяца), выполнить цикл, чтобы найти самую новую папку, зайти туданайдите новый элемент в этой папке, создайте папку «Завершено» и переместите новый элемент в эту папку.

REM ------------------------------------
REM Get year and month of previous month
REM ------------------------------------
SET month=%DATE:~4,2%
if "%month:~0,1%"=="0" (set month=%month:~1%)
set /a prevmonth=%month% - 1
set yearprevmo=%DATE:~10,4%
if %prevmonth% equ 0 set /a yearprevmo=%yearprevmo%-1 & set prevmonth=12
pushd \\SERVER\Statements
cd %yearprevmo%
REM ------------------------------------
REM Get most newly created folder
REM ------------------------------------
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET newestfolder=%%i
cd %newestfolder%
FOR /F "delims=" %%i IN ('dir /b /a-d /t:c /od') DO SET zipname=%%i
mkdir Completed
move %zipname% Completed

Когда я сам запускаю этот пакетный файл, он работает нормально и выполняет все, что я ожидаюэто делать.Когда я создаю задание SQL для запуска этого пакетного файла, укажите его на правильный файл и убедитесь, что учетная запись SQL имеет все правильные разрешения, он корректно запускает все, кроме циклов for.

Запуск его какон нормально открывает сервер, переходит в нужную папку года, но затем не переходит в папку месяца и создает папку «Завершено», в которой он находится в данный момент.(он создает \ server \ Statements \ 2019 \ Completed, а не \ server \ Statements \ 2019 \ May \ Completed).

Если я жестко запишу новый месяц, он правильно перейдет в эту папку, но затем не будетЦикл, чтобы найти самый новый предмет там.Он по-прежнему создает папку «Завершено», но не перемещает в нее элемент.Если я жестко закодирую имя элемента, он хорошо перемещается и перемещает все, куда ему нужно.

Ясно, что проблема заключается в цикле for, но я не могу найти никакой информации о том, почему задание SQL будет игнорироватьсяцикл for или любые ошибки, которые он может вызвать, все еще позволяя ему выполнять последующие команды.

...