के लिए कस्टम टी कमांड का उपयोग करना मैं बैट फ़ाइल के लिए लिखे गए tee कोड का उपयोग करने का प्रयास कर रहा हूं लेकिन मुझे अपने कोड में इसे लागू करने में समस्या हो रही है। मैं टीई समस्या को हल करने के लिए किसी तीसरे पक्ष के इंस्टॉलेशन का उपयोग नहीं करना चाहता क्योंकि मैं कोड को काम करना चाहता हूं अगर मैं एक वर्ष में अपने कंप्यूटर को प्रारूपित करता हूं और प्रोग्राम को फिर से चलाने के लिए चाहता हूं।.bat फ़ाइल
mycommand.exe | tee.bat -a output.txt
मैं एक अलग .bat
फ़ाइल के साथ की कोशिश की है और साथ कोई लाभ नहीं हुआ एक समारोह (preffered) मूल .bat
में के रूप में शामिल की कोशिश की:
मैं इसे इस तरीके से सेटअप
myprogram.exe | call tee -a output.txt
echo.
echo.
echo.
SET /P restart="Do you want to run again? (1=yes, 2=no): "
if "%restart%"=="1" GOTO LoopStart
::--------------------------------------------------------
::-- Function section starts below here
::--------------------------------------------------------
:tee
:: Check Windows version
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
|
:: Keep variables local
SETLOCAL
:: Check command line arguments
SET Append=0
IF /I [%1]==[-a] (
SET Append=1
SHIFT
)
IF [%1]==[] GOTO Syntax
IF NOT [%2]==[] GOTO Syntax
:: Test for invalid wildcards
SET Counter=0
FOR /F %%A IN ('DIR /A /B %1 2^>NUL') DO CALL :Count "%%~fA"
IF %Counter% GTR 1 (
SET Counter=
GOTO Syntax
)
:: A valid filename seems to have been specified
SET File=%1
:: Check if a directory with the specified name exists
DIR /AD %File% >NUL 2>NUL
IF NOT ERRORLEVEL 1 (
SET File=
GOTO Syntax
)
:: Specify /Y switch for Windows 2000/XP COPY command
SET Y=
VER | FIND "Windows NT" > NUL
IF ERRORLEVEL 1 SET Y=/Y
:: Flush existing file or create new one if -a wasn't specified
IF %Append%==0 (COPY %Y% NUL %File% > NUL 2>&1)
:: Actual TEE
FOR /F "tokens=1* delims=]" %%A IN ('FIND /N /V ""') DO (
> CON ECHO.%%B
>> %File% ECHO.%%B
)
:: Done
ENDLOCAL
GOTO:EOF
:Count
SET /A Counter += 1
SET File=%1
GOTO:EOF
:Syntax
ECHO.
ECHO Tee.bat, Version 2.11a for Windows NT 4/2000/XP
ECHO Display text on screen and redirect it to a file simultaneously
ECHO.
IF NOT "%OS%"=="Windows_NT" ECHO Usage: some_command ¦ TEE.BAT [ -a ] filename
IF NOT "%OS%"=="Windows_NT" GOTO Skip
ECHO Usage: some_command ^| TEE.BAT [ -a ] filename
:Skip
ECHO.
ECHO Where: "some_command" is the command whose output should be redirected
ECHO "filename" is the file the output should be redirected to
ECHO -a appends the output of the command to the file,
ECHO rather than overwriting the file
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com
ECHO Modified by Kees Couprie
ECHO http://kees.couprie.org
ECHO and Andrew Cameron
मैं आउटपुट को विभाजित करने की कोशिश कर रहा हूं ताकि मैं कंसोल आउटपुट को फ़ाइल में सहेज सकूं जबकि अभी भी चल रहे प्रोग्राम के साथ बातचीत करने में सक्षम हो।
मैं टीई कमांड को अपने .bat के साथ ठीक से काम करने के लिए कैसे प्राप्त कर सकता हूं ताकि मैं आउटपुट को एक फ़ाइल और कंसोल दोनों में विभाजित कर सकूं।
एचएम, यह मेरे लिए काम करता है। क्या आप सुनिश्चित हैं कि 'mycommand.exe' stdout को आउटपुट करता है, stderr नहीं? बाद वाले को कैप्चर करने के लिए, आपको 'mycommand.exe 2> और 1 | की आवश्यकता होगी कॉल टी ... ' –