Получение значения счетчика выбора 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