Получение значения счетчика выбора Oracle в sqlplus в пакетный файл dos

У меня есть пакетный файл DOS, в котором работает SQLplus select, чтобы получить количество строк, для которых определенное значение столбца равно 10. Это работает нормально, и я успешно вывел значение в файл, однако сейчас у меня возникают реальные проблемы с использованием это значение в командном файле. Проблема, кажется, из-за того, что это правильная строка из 10 символов.

так что, если мое значение равно 0, я получу это,

         0

или если бы мое значение было 7000, я бы получил это,

      7000

Что я действительно хочу, так это

0

или это

7000

Я вполне уверен, что если бы у меня были данные, начинающиеся в столбце 1, то я мог бы использовать следующее для чтения данных,

for %%a in ("C:\Program Files (x86)\BBWin\ext\status10.LST") do if /I %%a GTR 300 echo %%a >> "C:\Program Files (x86)\BBWin\ext\status10.txt"

2 ответа

Решение

Вы можете удалить пробелы, выполнив следующие действия

set str=%str: =%
echo."%str%"

Где str - переменная, содержащая значение с пробелами.

Больше информации здесь

Ответ galuano1 определенно удаляет пробелы из значения, в вашем случае это не требуется.

Разделителями токенов по умолчанию для FOR /F являются пробел и табуляция. Так что ведущие места будут урезаны для вас. Значение не обязательно должно быть выровнено:-)

Вам нужно использовать FOR /F с опцией USEBACKQ, чтобы прочитать файл с пробелами в имени.

for /f "usebackq" %%a in ("C:\Program Files (x86)\BBWin\ext\status10.LST") do ...

Но вам даже не нужен файл! Вы можете напрямую обработать результаты вашего sqlplus, используя FOR /F, заключив команду в одинарные кавычки.

for /f %%a in ('sqlplus ...') do ...

Вы должны внимательно прочитать справочную документацию по команде FOR: тип HELP FOR или же FOR /? из командной строки. Есть много тонких различий в том, как можно использовать FOR.

Вы также можете проверить этот отличный учебник цикла FOR

Другие вопросы по тегам