В настоящее время работает следующий код в пакетном файле: он запускает все сценарии SQL в %SCRIPTFOLDER%
и отправляет выходные данные каждого сценария в CSV в той же папке, что и сценарии.
FOR /F "tokens=*" %%S IN (
'DIR /B "%SCRIPTFOLDER%\*.sql" '
) DO (
sqlcmd -b -S %INSTANCE% -d %DATABASE% -i "%%~fS" -s "|" -o "%%~dpnS.csv" -W
IF ERRORLEVEL 1 GOTO errorhandling
ECHO %%~nS.csv successfully created
)
Что яМне бы хотелось, чтобы пользователь мог указать, куда отправляются генерируемые файлы CSV, используя переменную% OUTPUTFOLDER%.
Я попытался разместить %OUTPUTFOLDER%
, который представляет собой полный путь, диск и папки (например,D: \ some folder \ output) в различных позициях в пределах %%~dpnS.csv
.В частности,
%%~dp%OUTPUTFOLDER%nS.csv
и
%%~dpn%OUTPUTFOLDER%S.csv
, но они не сработали, и я (вероятно, для вас) крайне неудачен в синтаксисе пакетного файла!
Я понимаю, что dp
- это диск и путь, а S
- это имя файла, но я не уверен, как интегрировать это с переменной, которая является путем.