| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Windows コマンド 拡張子をインクリメントしたファイルを作成する」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
(ページの作成:「==Windows コマンド 拡張子をインクリメントしたファイルを作成する== [スクリプト(Win)] ====key_file.bat==== @echo off rem **************…」)
 
1行目: 1行目:
 
==Windows コマンド 拡張子をインクリメントしたファイルを作成する==
 
==Windows コマンド 拡張子をインクリメントしたファイルを作成する==
[スクリプト(Win)]
+
[[スクリプト(Win)]]
 
====key_file.bat====
 
====key_file.bat====
 
  @echo off
 
  @echo off
25行目: 25行目:
 
  )
 
  )
 
  if %NEXT_NUM% LEQ %LIMIT% (
 
  if %NEXT_NUM% LEQ %LIMIT% (
     type NUL > %~1.%NEXT_NUM%
+
     type NUL > %~1.%NEXT_NUM%
 
     del %~1.%CUR_NUM%
 
     del %~1.%CUR_NUM%
 
  )
 
  )

2020年2月15日 (土) 08:06時点における版

Windows コマンド 拡張子をインクリメントしたファイルを作成する

スクリプト(Win)

key_file.bat

@echo off
rem ********************************************************************
rem 
rem key_file [キーファイル名(拡張子を除く)] [最大数]
rem
rem 呼び出されるたびに、キーファイル名+"."+数値+1 のファイルを作成し、
rem キーファイル名+"."+数値のファイルを削除する
rem
rem 拡張子が、指定された最大数に達したら何も行わない
rem 
rem 使用例:key_file.bat "C:\work\KEY_FILE" 3
rem
rem ********************************************************************
 
set /A LIMIT=%2
set /A CUR_NUM=0
set /A NEXT_NUM=1
set KEYFILE="%~1.*"

for %%keyf in (%KEYFILE%) do (
    call :calc_extension_num %%keyf
)
if %NEXT_NUM% LEQ %LIMIT% (
    type NUL > %~1.%NEXT_NUM%
    del %~1.%CUR_NUM%
)
 
goto :end
@echo on
 
:calc_extension_num
    set EXTENSION=%~x1
    set /A CUR_NUM=%EXTENSION:~1%
    set /A TMP_NUM=%CUR_NUM% + 1
    if %TMP_NUM% GTR %NEXT_NUM% (
        set NEXT_NUM=%TMP_NUM%
    )
:end