特定のファイルの名前を指定された名前に変更するバッチファイルを作成しました。 .batファイルを手動で実行すると正常に動作し、名前は期待どおりに変わります。しかし、私が会った問題は、タスクスケジューラでスケジュールされているときに.batファイルが機能しなかったことです(名前は変更されませんでした)。履歴、タスクカテゴリのログメッセージはすべて完了しましたが、.batファイルは名前を変更しませんでした。Windows 7のバッチファイルでタスクが失敗する
私は解決策のように見える関連記事を検索しようとしましたが、まだまだ運がありません。 私は、 'プログラム/スクリプト'と引用符で囲まれていないパスをタスクの「開始(オプション)」で埋めようとしましたが、それでも動作しません。
パス名と "パス名"
パスのスペースは、実行がスケジュールされているときにタスクを無効にしますか?誰も私の.batファイルをスケジュールどおりに実行させる可能性のある解決策はありますか?
以下は、.batファイルの内容です。
@ECHO OFF
REM The previous 6 SET statements are for extracting the specific time value.
SET year=%date:~-13,4%
SET "month=00%date:~-8,2%"
SET "month=%month:~2%"
SET "day=00%date:~-5,2%"
SET "day=%day:~-2%"
REM /a sets string to a numerical expression that is evaluated.
SET /a "day-=1"
SET FileName=幹你妹_%year%%month%%day%.pdf
REN 幹你妹.pdf %FileName%
手動で実行すると動作する場合は、正しいフォルダで実行されていない可能性があると言います。しかし、あなたは「開始」フィールドに記入したと言った。 'REN'コマンドで明示的にしようとすると、絶対パスを提供することができます。 'C:\ path \から\ xyz.pdfへC:\ path \から\%ファイル名%'に移動します。それでも問題が解決しない場合は、変数をログにエコーしてみてください。 'echo%date%>> C:\ log.txt'です。 – soja
さて、なぜあなたは日と月の二段階のプロセスを行っていますか?また、 'SET'コマンドの引用符は、有益なものよりも混乱していると思います。多分それは私だけでしょうか? – soja
@soja - 日付をその部分に分割する方がはるかに良い方法がありますが、偶発的な余分なスペースを防ぐために引用符があります。 – SomethingDark