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


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.