どうも、提出期限を厳守する 0 -Ray- です!
今回はファイルの更新日時を任意に変更するbatを自作したので紹介します!
一番最後にダウンロードできるリンクを用意するのでご自由にお使いください!
え、どんな時に使用するかって?
……
それでは早速いきましょう!
コード
@echo off
set target=\target\*
set targetfolder=%CD%%target%
echo "※ファイルのバックアップを取っておくことを推奨します。"
echo "------------------------------------------------"
for %%f in (%targetfolder%) do (
set targetfile=%%~f
)
echo targetfile : %targetfile%
echo "------------------------------------------------"
set /p cdate="日付を入力してください。(yyyy/mm/dd) : "
echo "------------------------------------------------"
set /p ctime="時間を入力してください。(hh:mm:ss) : "
echo "------------------------------------------------"
set cinfo="%cdate% %ctime%"
echo .
SET /P selected="上記の内容でよろしいですか?(y=yes / n=no)?"
if /i {%selected%}=={y} (goto :yes)
if /i {%selected%}=={yes} (goto :yes)
if /i {%selected%}=={n} (goto :no)
if /i {%selected%}=={no} (goto :no)
:no
echo キャンセルしました。
goto exitlabel
:yes
set psCommand="Set-ItemProperty %targetfile% -name LastWriteTime -value '%cinfo%'"
powershell -NoProfile -ExecutionPolicy Unrestricted %psCommand%
if %errorlevel% == 0 (
echo 正常終了しました。
) else (
echo 処理できませんでした。
echo 戻り値:%errorlevel%
echo 入力した値などを見直してください。
)
:exitlabel
pause
コード解説
set target=\target\*
set targetfolder=%CD%%target%
Downloadしていただけるとわかりやすいですが、
今回のbatは、batファイルと同じ階層にある「target」フォルダ内のファイルの更新日時を変更するものとなっています。
echo "※ファイルのバックアップを取っておくことを推奨します。"
echo "------------------------------------------------"
for %%f in (%targetfolder%) do (
set targetfile=%%~f
)
echo targetfile : %targetfile%
echo "------------------------------------------------"
set /p cdate="日付を入力してください。(yyyy/mm/dd) : "
echo "------------------------------------------------"
set /p ctime="時間を入力してください。(hh:mm:ss) : "
echo "------------------------------------------------"
set cinfo="%cdate% %ctime%"
このあたりでファイルの情報を取得しています。
set /p 変数 =”terminalに表示する文字”で入力した値を変数に格納できます。
※(yyyy/mm/dd) (hh:mm:ss) のフォーマットで入力しないとエラーになります。
SET /P selected="上記の内容でよろしいですか?(y=yes / n=no)?"
if /i {%selected%}=={y} (goto :yes)
if /i {%selected%}=={yes} (goto :yes)
if /i {%selected%}=={n} (goto :no)
if /i {%selected%}=={no} (goto :no)
yes,no に合わせて、動作を変えれるようにラベルへ飛ばします。
:yes
set psCommand="Set-ItemProperty %targetfile% -name LastWriteTime -value '%cinfo%'"
powershell -NoProfile -ExecutionPolicy Unrestricted %psCommand%
if %errorlevel% == 0 (
echo 正常終了しました。
) else (
echo 処理できませんでした。
echo 戻り値:%errorlevel%
echo 入力した値などを見直してください。
)
noはキャンセルするだけの処理なので、ここではyesを解説します。
Powershellを起動して、更新日時を変更しています。
Download
下が実際に使用しているbatです!ご自由にどうぞ!
LastWriteTime_change
1 ファイル 0.91 KB
最後までご覧いただきありがとうございます!
それでは良いエンジニアライフを!!
コメント