目次
MEMO
- ファイル名にスペースがあると「コマンドの構文が誤っています」エラーになる
- 文字コードはやはり「Shift-JIS」で、あと改行コードが「CRLF」(Windows)でないとだめ(LFだとNG。LFはMac)
- 送るフォルダには、バッチ本体をおかなければならない(ショートカット不可)
TODO
- 複数のファイルに付与も可能かも
サンプル(できるかどうかは不明)
@echo off
for %%f in (%*) do call :sub "%%f"
exit /b
:sub
set fname=%1
set year=%date:~2,2%
set month=%date:~5,2%
set day=%date:~8,2%
rem set newfname=%year%%month%%day%%fname%
set newfname=%year%%month%%day%%fname%
rem ren %fname% %newfname%
ren %1 %newfname%
goto :EOF参考HP
- https://orangeclover.hatenablog.com/entry/20101004/1286120668
- http://tadpolizemedia.blog118.fc2.com/blog-entry-277.html?sp
発展
- Pythonからシステムコマンドを使えると便利になるはず
コマンドプロンプトのバッチでも作れる
@echo off
rem 環境変数からWindowsのシステム日時を取得し、形式を変える
set val_date=%date%
set val_time=%time%
echo =================================================
echo ■1-1.標準(YYYY/MM/DD)
echo %val_date%
echo ■1-2.置換(YYYYMMDD)
rem %変数名:対象文字=置き換え文字%
set val_date1=%val_date:/=%
echo %val_date1%
echo ■1-3.切り抜き(YYMMDD)
rem %変数名:~開始位置,文字数%(負の数だと末尾から)
set val_date2=%val_date1:~-6%
echo %val_date2%
echo ■1-4.切り抜き(YYMM)
rem %変数名:~開始位置,文字数%(負の数だと末尾から)
set val_date3=%val_date1:~2,4%
echo %val_date3%
echo ■1-5.切り抜き(MMDD)
rem %変数名:~開始位置,文字数%(負の数だと末尾から)
set val_date4=%val_date1:~-4%
echo %val_date4%
echo =================================================
echo ■2-1.標準(HH:MM:SS.ss)
echo %val_time%
echo ■2-2.時(HH)が1桁だった場合、1文字目の半角スペースを0に置換する
rem %変数名:対象文字=置き換え文字%
set val_time1=%val_time: =0%
echo %val_time1%
echo ■2-3.置換(HHMMSS.ss)
rem %変数名:対象文字=置き換え文字%
set val_time2=%val_time1::=%
echo %val_time2%
echo ■2-4.切り抜き(HHMMSS)ミリ秒2桁は不要
rem %変数名:~開始位置,文字数%(負の数だと末尾から)
set val_time3=%val_time2:~0,6%
echo %val_time3%
echo ■2-5.切り抜き(HHMM)
rem %変数名:~開始位置,文字数%(負の数だと末尾から)
set val_time4=%val_time3:~0,4%
echo %val_time4%
echo =================================================
pause
送るメニューからファイル名の後に「_YYMM」を付与
- 参考HP:~~~
- ShiftJISで保存すること
バッチファイルを作成する
@echo off
rem ファイル右クリック「送る」から末尾に「_YYMM」を付与
rem YYYY/MM/DDから/を除去しMMDDのみ取り出す(_YYMMのアンダーバーには""で囲まなくてもよい)
set suffix=%date:/=%
set suffix=_%suffix:~-4%
rem 「%~n1」でファイル名(拡張子除く)を「%~x1」で拡張子を分けて取得
set before_fname=%~n1%~x1
rem その間に変数suffixを挿入したファイル名を作成
set after_fname=%~n1%suffix%%~x1
rem ファイル名を変更
rename %before_fname% %after_fname%送るメニューにバッチファイルを格納
- ファイル名を指定して実行で「shell:sendto」して、送るメニューのフォルダを開く
- そこにバッチファイルを格納する
- バッチファイル名がそのまま送るメニューに表示される
- ファイルを指定して、右クリック>「_YYMM」を付与のバッチファイルを選択するとリネームされる