毎月 (Windows のタスク スケジューラを使用して) Google Chrome Downloads フォルダー (私の Windows 7 64 ビット PC) にアーカイブするバッチ ファイルを作成しました。先月変更されていない場合、特定のファイルタイプから別のフォルダーにファイルを移動する必要があります。ファイルの移動先のフォルダーは、最終更新日によって異なります。
だから私は次のバッチファイルを作りました:
@エコーオフ CD C:\Users\Dagan\Downloads FORFILES /m (DIR (FOR %%G IN (*.doc *.pdf) do echo %%G) /A /O:D /T:C /B /D) /c "FOR %Q IN (@path ) DO ((SET year=%%~tG ) && (SET year=%year~6,4%) && (SET month=%%~tG) && (SET month=%month~3,2%) && ( MOVE %%G "C:\Users\Dagan\DownloadArchives\"%year%"\"%month%"\") && (SET year=) && (SET month=))" /d -31 CD C:\Users\Dagan\Desktop
しかし、それは機能しておらず、次のエラーが表示されます。
バッチ パラメータ置換でのパス演算子の次の使用法は無効です: %~tG ) && (SET year=%year~6,4%) && (SET month=% %~tG) && (SET month=%month~3,2%) && (MOVE %%G "C:\Users\Dagan\DownloadArchives\"% 年%"\"%月%"\") && (セット年=) && (セット月=))" /d -31 有効な形式の場合は、CALL /? と入力します。またはFOR /? ☺ 現時点では期待されていません。
誰かがこれで私を助けてくれますか?
PS: これも私のバッチファイルですが、読みやすいようにフォーマットされています。
@エコーオフ CD C:\Users\Dagan\Downloads FORFILES /m ( DIR ( FOR %%G IN ( *.doc *.pdf ) %%G をエコーする ) /A /O:D /T:C /B /D ) /c " FOR %Q IN (@パス) DO ( (SET year=%%~tG ) && (SET year=%year~6,4%) && (SET month=%%~tG) && (SET month=%month~3,2%) && (MOVE %%G "C:\Users\Dagan\DownloadArchives\"%year%"\"%month%"\") && (SET 年 =) && (SET 月 =) ) " /d -31 CD C:\Users\Dagan\Desktop