Как получить имена файлов в определенной папке и объединить имя файла с некоторыми символами - PullRequest
2 голосов
/ 09 июля 2019

Я пытаюсь написать сценарий пакетного файла, который создаст файл .sql и запишет содержимое, которое я хочу, следуя логике, которую я пытаюсь, нам нужно объединить все сценарии .sql для каждой страны и создать мастер-файлы .sql, которые будут вызывать все остальные файлы .sql, мы предоставим эти файлы нашей команде администраторов баз данных, они будут запускать мастер-файлы вместо отдельных файлов,

Я создал скрипт, который создаст файл .sql и несколько базовых команд с помощью команд @echo. Также я могу перечислить файлы в определенной папке, но я не могу сделать цикл для конкатенации файла. имена с несколькими символами в префиксе и суффиксе.

следующий код, который я пробовал

    @echo off
        break>"C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708\dblank.sql"

    cd C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708

    @echo Set scan off;>>dblank.sql
    @echo alter session set current_schema="SV2AUPR";>>dblank.sql

    rem dir /b "C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708\" >>dblank.sql

я бы хотел вывести следующим образом

Set scan off;
alter session set current_schema="SV2AUPR";

@@BLUE-CR616-APPLICATION_NO_CHANGE.sql;
SHOW ERROR;

@@CR_deployment_script.sql;
SHOW ERROR;

@@Addroledetails.sql;
SHOW ERROR;

@@SV2_IBIS_MOVE_DATA_PR_ALL_DB.sql;
SHOW ERROR;

я хочу добавить '@@' перед именем файла и ';' в конце имени файла кто-нибудь может мне помочь в этом?

1 Ответ

1 голос
/ 09 июля 2019
(
@for /f "delims=" %%a in ('dir /a-d /b "C:\Gopi_Kishan\DBBR\Daily_attachments\ausqascript_20190708\*.sql"') do @echo @@%%a;&@echo show_error;
)>>dblank.sql

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

Для ... *.sql (каждый .sql файл) получить его имя в базовой форме для %%a. /a-d означает, что ни одно из каталогов не совпадает. Затем echo это с его префиксом и суффиксом, за которым следует строка show_error;; перенаправляется для добавления в файл.

Обратите внимание, что @, предшествующий каждой пакетной команде, не требуется, если вы выполняете @echo off как обычно в начале сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...