Необхідна допомога у пакетному скрипті


1

Я створив пакетний скрипт, який перезапускає виконуваний файл, я намагаюся змусити його виводити файл журналу з помилками.

Мій сценарій є

@echo on

timeout /t 03

set logfile=c:\users\administrator\desktop\C4W\Logs\status.log
echo starting system.exe at %date% %time% >> %logfile%
"./system.exe" -connection "sql instance" -model "model number" -username "admin" -password "" -id 2  >> %logfile%

Pause

Exit 0

Як ви можете бачити, мій виконуваний файл підключається до екземпляра sql і моделі в базі даних sql. Коли я запускаю командний файл, на екрані з'являється повідомлення про помилку: "Вхід не є дійсним рядком Base-64, оскільки він містить несистемний символ 64, більше двох символів заповнення або символ не пробілу серед доповнень символів ”. Але мій лог-файл не показує цю помилку, це просто показує, що мій виконуваний файл працює з відображеною датою та часом. Я спробував поставити & amp; у & gt; & gt; & amp; % logfile%, але тоді я не бачу повідомлення про помилку у вікні cmd, і мій журнал також не показує його.

Чи можна бачити, де я помиляюся?


Ви дійсно використовуєте передню косу перед system.exe?
— Twisty Impersonator

мій виконуваний файл не називається системою, але він знаходиться на кореневому рівні, так що так
— Paul508

Це Windows? Що станеться, якщо ви поміняєте його на зворотну косу? Btw "" означає поточний каталог, тоді як "" - кореневий каталог.
— Twisty Impersonator

це насправді буде працювати на сервері 2012 r2 змінюється на задню слеш не має ефекту, я також спробував змінити його на c :.
— Paul508

1
Чи є ваше питання "Як я можу отримати вихід помилки в моєму журналі", або "Як я можу усунути цю помилку"? Будь ласка редагувати Ваше питання уточнити, яке.
— Twisty Impersonator

Відповіді:


1

Щоб перенаправити вивід помилки команди до вашого журналу, разом з будь-яким стандартним виходом, додайте >>logfile.txt 2>>&1 до вашої команди, наприклад:

yourcommand.exe >>logfile.txt 2>>&1

The 2>>&1 Синтаксис необхідний для "об'єднання" потоків StdOut і StdErr для перенаправлення в файл журналу.

Більше інформації


Я додав свій скрипт, але помилка не відображається в моєму файлі журналу
— Paul508

Яка саме точна команда зараз використовується?
— Twisty Impersonator

c: system.exe "sdsql2012" -модель c812ocex-ім'я користувача "admin" -пароль "" -id 2 команда & gt; & gt; % logfile% 2 & gt; & amp; 1
— Paul508

Спробуйте замінити %logfile% с log.txt. Крім того, я припускаю, що відсутня подвійна цитата раніше c:\system.exe є випадковим.
— Twisty Impersonator

так, це було випадково, його не розірване ім'я, тому я повністю видалив його, спробувавши змінити на log.txt все ще помилка не відображається у файлі журналу
— Paul508
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.