毎月 (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