1

2 つの単純なバット ファイルを作成しましたが、両方で同じエラーが発生し続けます。Bat ファイルの内容をテキスト ドキュメントに記録したいと考えていました。エラーは :The process cannot access the file because it is being used by another process. それは私が自分自身の中でバットファイルと呼ばれているからですか?

コード 1

@echo off

:BEGIN
net stop redmineMongrel1
TIMEOUT /T 15
net start redmineMongrel1
goto SUCCESS

:SUCCESS
"C:\Documents and Settings\Administrator\My Documents\MongrelRestartScript.bat" > "C:\Documents and Settings\Administrator\My Documents\MongrelRestart.log"
ECHO Mongrel Restart Successful  %DATE%>> "C:\Documents and Settings\Administrator\My Documents\MongrelRestart.log"
goto END

:FAIL
ECHO.>"C:\Documents and Settings\Administrator\My Documents\MongrelRestart.log"
ECHO Mongrel Restart FAILED %DATE%>> "C:\Documents and Settings\Administrator\My Documents\MongrelRestart.log"

:END
echo END OF BAT FILE

コード 2

@echo off


:BEGIN
DEL "D:\BACKUPS\RedmineFolder" /s /q 
RD "D:\BACKUPS\RedmineFolder" /s /q


xcopy C:\BitNami\apps\redmine "D:\BACKUPS\RedmineFolder" /e /h /r /y /I
goto SUCCESS

:SUCCESS
ECHO.>"C:\Documents and Settings\Administrator\My Documents\RedmineBackupLog.log"
ECHO Redmine Backup Successful  %DATE%>> "C:\Documents and Settings\Administrator\My Documents\RedmineBackupLog.log"
"C:\Documents and Settings\Administrator\My Documents\RedmineBackUpScript.bat" >> "C:\Documents and Settings\Administrator\My Documents\RedmineBackupLog.log"
goto END

:FAIL
ECHO.>"C:\Documents and Settings\Administrator\My Documents\RedmineBackupLog.log"
ECHO Redmine Backup  FAILED %DATE%>> "C:\Documents and Settings\Administrator\My Documents\RedmineBackupLog.log"

:END
echo END OF BAT FILE
4

2 に答える 2

1

この問題は、bat ファイルをそれ自体から呼び出しているためではありません。これをdosで行うことは完全に受け入れられます。

Bat ファイルの内容をダンプしようとしている場合は、'type' を使用します。

type filename > logfile

.log ファイルが別のプロセスによって開かれている可能性があります。Windows の filemon を使用して、どのプロセスがファイルにアクセスしているかを確認できます: filemon

于 2012-10-16T18:27:08.050 に答える
1

その通りだと思います。これを次のように呼び出す別のバットファイルを追加しました。

MAIN.bat

"C:\Documents and Settings\Administrator\My Documents\DoThis.bat" > "C:\Documents and Settings\Administrator\My Documents\LogEverything.log" 2>&1

2>&1 は (bat ファイルとコマンド ラインから) すべてのテキストをログに記録します。これは非常に便利です。

于 2012-10-17T15:19:17.813 に答える