私は情報TLを残さずにできるだけこの投稿を減らそうとしました; DRは一番下に含まれています。バッチファイルをログファイルに出力するのを止めるには?
私は、短い で- チェックサーバーB上の宛先フォルダに画像やテキストファイル用のサーバーA上の2つのフォルダ
- コピーしたテキストファイル
- コピー画像のスクリプトを継承している
サーバーBのイメージの保存先フォルダにファイル
- は、サーバーAでこれらのファイルをアーカイブします。
- は、サーバーAで5日以上経過したファイルを削除します。 ここで0
スクリプト
@echo on
set log=c:\temp\acsloadcopy.log
set txtsrc=C:\Users\LCI\Desktop\txtsrc
set imgsrc=C:\Users\LCI\Desktop\imgsrc
set txtdest=C:\Users\LCI\Desktop\txtdest
set imgdest=C:\Users\LCI\Desktop\imgdest
set txtbak=%txtsrc%\Archive
set imgbak=%imgsrc%\Archive
rem set txtautonomy=\\idolget\tm\%TM10Environment%\
if ("%tm10acis%"=="") (
call :stop 1 "No tmacis environment variable set - can't run"
)
if ("%tm10acis%"=="none") (
call :stop 0 "No Acs server for this environment (tmacis=none)"
)
set _hh=%time:~0,2%
if "%time:~0,1%"==" " set _hh=0%_hh:~1,1%
SET TIMESTAMP=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%-%_hh%-%TIME:~3,2%-%TIME:~6,2%
call :clean
call :dochecks
REM call :checkage %txtsrc%
REM COPY TO ACSE
xcopy %txtsrc%\*.* %txtdest%
if ERRORLEVEL 1 call :stop 1 "error copying %txtsrc% %txtdest%"
xcopy %imgsrc%\*.* %imgdest%
if ERRORLEVEL 1 call :stop 1 "error copying %imgsrc% %imgdest%"
REM to ARCHIVE
move /y %txtsrc%\*.* %txtbak%\%TIMESTAMP%
rem Xcopy %txtsrc%\*.* %txtbak%\%TIMESTAMP%
if ERRORLEVEL 1 call :stop 1 "error moving %txtsrc% %txtbak%\%TIMESTAMP%"
move /y %imgsrc%\*.* %imgbak%\%TIMESTAMP%
rem Xcopy %imgsrc%\*.* %imgbak%\%TIMESTAMP%
if ERRORLEVEL 1 call :stop 1 "error moving %imgsrc% %imgbak%\%TIMESTAMP%"
REM CLEAN UP OLD ARCHIVES
call :clean %txtbak%
call :clean %imgbak%
goto :eof
:dochecks
call :checkfolder %txtsrc%
call :checkfolder %imgsrc%
call :checkfolder %txtdest%
call :checkfolder %imgdest%
call :checkfolder %txtbak%
call :checkfolder %imgbak%
if not exist %txtbak%\%TIMESTAMP% mkdir %txtbak%\%TIMESTAMP%
if ERRORLEVEL 1 call :stop 1 "Can't create archive folder %txtbak%\%TIMESTAMP% "
if not exist %imgbak%\%TIMESTAMP% mkdir %imgbak%\%TIMESTAMP%
if ERRORLEVEL 1 call :stop 1 "Can't create archive folder %imgbak%\%TIMESTAMP% "
if exist %txtdest%\*.txt call :stop 1 "Previouly copied text files have not been processed by acs"
if exist %imgdest%\*.jpg call :stop 1 "Previouly copied image files have not been processed by acs"
if not exist %txtsrc%\*.txt call :stop 0 "No source text files"
if not exist %imgsrc%\*.jpg call :stop 0 "No source image files"
:skipcheck
goto :eof
:checkfolder
set f=%1
pushd %f%
if ERRORLEVEL 1 call :stop "folder %f% does not exist"
popd
goto :eof
:stop
set exitcode=%1
set exitmsg=%~2
echo %exitmsg%
exit %exitcode%
言われて私の問題は、ログは、バッチファイルがここでやっているすべてのものを出力していることは、それのいくつかの例であるということです。
C:\Users\LCI\Desktop\testt>if ERRORLEVEL 1 call :stop 1 "error copying
C:\Users\LCI\Desktop\txtsrc C:\Users\LCI\Desktop\txtdest"
C:\Users\LCI\Desktop\testt>xcopy C:\Users\LCI\Desktop\imgsrc\*.* C:\Users\LCI\Desktop\imgdest
C:\Users\LCI\Desktop\imgsrc\dwqd.jpg
1 File(s) copied
C:\Users\LCI\Desktop\testt>if ERRORLEVEL 1 call :stop 1 "error copying C:\Users\LCI\Desktop\imgsrc C:\Users\LCI\Desktop\imgdest"
C:\Users\LCI\Desktop\testt>REM to ARCHIVE
C:\Users\LCI\Desktop\testt>move /y C:\Users\LCI\Desktop\txtsrc\*.* C:\Users\LCI\Desktop\txtsrc\Archive\2017-03-08-10-34-41
C:\Users\LCI\Desktop\txtsrc\awd.txt
C:\Users\LCI\Desktop\txtsrc\dwdw.txt
C:\Users\LCI\Desktop\txtsrc\wwqwq.txt
3 file(s) moved.
C:\Users\LCI\Desktop\testt>rem Xcopy C:\Users\LCI\Desktop\txtsrc\*.* C:\Users\LCI\Desktop\txtsrc\Archive\2017-03-08-10-34-41
C:\Users\LCI\Desktop\testt>if ERRORLEVEL 1 call :stop 1 "error moving C:\Users\LCI\Desktop\txtsrc C:\Users\LCI\Desktop\txtsrc\Archive\2017-03-08-10-34-41"
C:\Users\LCI\Desktop\testt>move /y C:\Users\LCI\Desktop\imgsrc\*.* C:\Users\LCI\Desktop\imgsrc\Archive\2017-03-08-10-34-41
C:\Users\LCI\Desktop\imgsrc\dwqd.jpg
1 file(s) moved.
C:\Users\LCI\Desktop\testt>rem Xcopy C:\Users\LCI\Desktop\imgsrc\*.* C:\Users\LCI\Desktop\imgsrc\Archive\2017-03-08-10-34-41
C:\Users\LCI\Desktop\testt>if ERRORLEVEL 1 call :stop 1 "error moving C:\Users\LCI\Desktop\imgsrc C:\Users\LCI\Desktop\imgsrc\Archive\2017-03-08-10-34-41"
C:\Users\LCI\Desktop\testt>REM to AUTONOMY
C:\Users\LCI\Desktop\testt>rem if ERRORLEVEL 1 call :stop 1 "error creating \2017-03-08-10-34-41"
これはとして特にうるさいですいくつかのユリウスの日付計算をしています(私は、すでにテキストの壁を減らすために私が提出したスクリプトからこれらを取り出しています)。
正常に完了したかどうかにかかわらず、すべての行が出力されるだけで、何か問題が生じた場合に解釈が苦しくなります。
私はちょうどそれが部分的に/正常に完了した場合、ログを表示する、および/またはそれがエラー(上記から分かるように)遭遇した場合:
C:\Users\LCIAV\Desktop\txtsrc\awd.txt
C:\Users\LCIAV\Desktop\txtsrc\dwdw.txt
C:\Users\LCIAV\Desktop\txtsrc\wwqwq.txt
3 file(s) moved)
を私だけに出力パイプを追加しようとしていますスクリプト内で私に使用されている行(xcopyとIF) - これは何も変わっていませんでした。
最後にフィルタを付けて別のバッチファイルでファイルを呼び出そうとしましたが、私が望むすべてを説明しようとする少しの頭痛になりました。
それはなぜそれがすべてを出力するとどのようにそれを
を解決するために、私はそれがすべてを出力し、その解決方法だ理由を理解する助けいただければ幸いだと私は失うのです。
よろしく
TL; DRバッチファイルのログは非常にうるさいですが、それはない出力のすべて - だけすなわち出力有用な情報にそれを軽減したいと思いますが、完全にそれをやったか、エラーやった
スクリプトの先頭にログファイル名用の変数を定義していますが、出力をそのログファイルにリダイレクトするという単一のインスタンスは表示されません。 – Squashman
プログラムの最初の行で、 'echo on'を設定します。あなたはエコーがオンであることに驚いていますか?あなたがすべてのコマンドecho'dを見たくなければ、 'echo off'を設定してください。これは驚くべきことではありません。 – abelenky
@abelenky応答のための歓声。私はそれが驚いていない。それを "オフ"にすると、ログに "エコーはオフ"というメッセージが出力されます。 – Nighthawkz