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

MyMemoWiki

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

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
==Windows コマンド 拡張子をインクリメントしたファイルを作成する==
+
==[[Windows コマンド 拡張子をインクリメントしたファイルを作成する]]==
 
[[スクリプト(Win)]] |  
 
[[スクリプト(Win)]] |  
 
====key_file.bat====
 
====key_file.bat====
17行目: 17行目:
 
    
 
    
 
  set /A LIMIT=%2
 
  set /A LIMIT=%2
  set /A CUR_NUM=0
+
  set /A CU[[R]]_NUM=0
 
  set /A NEXT_NUM=1
 
  set /A NEXT_NUM=1
 
  set KEYFILE="%~1.*"
 
  set KEYFILE="%~1.*"
26行目: 26行目:
 
  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.%CU[[R]]_NUM%
 
  )
 
  )
 
    
 
    
34行目: 34行目:
 
  :calc_extension_num
 
  :calc_extension_num
 
     set EXTENSION=%~x1
 
     set EXTENSION=%~x1
     set /A CUR_NUM=%EXTENSION:~1%
+
     set /A CU[[R]]_NUM=%EXTENSION:~1%
     set /A TMP_NUM=%CUR_NUM% + 1
+
     set /A TMP_NUM=%CU[[R]]_NUM% + 1
     if %TMP_NUM% GTR %NEXT_NUM% (
+
     if %TMP_NUM% GT[[R]] %NEXT_NUM% (
 
         set NEXT_NUM=%TMP_NUM%
 
         set NEXT_NUM=%TMP_NUM%
 
     )
 
     )
 
  :end
 
  :end

2020年2月16日 (日) 04:34時点における最新版

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