【選手権お題その2】この漫画の2コマ目を考えてください

タイトルの通りです。

指定のフォルダ(仮にAとします)に4桁の連番が付いたフォルダ「1111」があります。
手動で定期的に「1112」「1113」..と追加しています。
一回の追加で連番10個の空のフォルダーを作っています。

バッチ処理にしたいこと
・開始番号を決めてから作りたい
 (できるならAにある一番大きい数字のフォルダ+1から開始したい)
・一回のバッチで10個フォルダを作りたい
・連番以外のテキストなどは何も含めない(連番のみ)

上記の動作がバッチ1つで可能でしょうか?
ネットで連番フォルダを作成するものは見つけたのですが、
開始が1から始まってしまうので使用が難しいです。。

上のような動きをするバッチを公開しているURLや
コードを教えていただけると幸いです。

A 回答 (2件)

以下のスクリプトを作成してください。


スクリプト名は、sample.vbs とします。(名前は任意ですが拡張子は必ず .vbsにしてください)
この作成したsample.vbsをダブルクリックすると、スクリプトが実行されます。
バッチファイルから呼び出す場合は、
c:\aaa\bbb\sample.vbs
のように記述します。(sample.vbsをc:\aaa\bbbに格納した場合)

尚、スクリプト内の
Const StartFolder = "d:\goo\vbs" '開始フォルダ(あるフォルダ)
の"d:\goo\vbs"をあなたの指定のフォルダに変えてください。
--------------------------------------------------------------------
Option Explicit
Const StartFolder = "d:\goo\vbs" '開始フォルダ(あるフォルダ)
Dim objFSO ' FileSystemObject
Dim objStartFolder ' 開始フォルダ
Dim objREG '正規表現
Dim maxfolder ' 最大フォルダ名
set objREG = New RegExp
objREG.Pattern = "^\d\d\d\d$"

' フォルダ検索関数
Function FindMaxFolder(ByVal objMainFolder)
Dim objSubFolder ' サブフォルダ
FindMaxFolder = "0000"
'サブフォルダを処理
For Each objSubFolder In objMainFolder.SubFolders
if objREG.test(objSubFolder.Name) then
if objSubFolder.Name > maxfolder then
FindMaxFolder = objSubFolder.Name
End if
End If
Next
End Function

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objStartFolder = objFSO.GetFolder(StartFolder)
maxfolder = FindMaxFolder(objStartFolder)
Dim i
For i = 1 to 10
dim num '作成フォルダ(数値)
dim fname '作成フォルダ(4桁の文字列)
num = maxfolder + i
fname = Replace(Space(4 - Len(num)) & num, Space(1), "0")
objStartFolder.SubFolders.Add(fname)
Next
Set objStartFolder = Nothing
Set objFSO = Nothing
    • good
    • 1
この回答へのお礼

tatsu99 様、ありがとうございます。
試したところ連番で10個、そして希望していた、
先にある通番の一番最後から続けてナンバリングまでできていて非常に助かりました...!

お礼日時:2018/08/27 21:39

VBS(VBScript)でよければ、そのようなスクリプトを提供可能ですが、いかがでしょうか。


VBSはWindowsに標準で実装されていますので、そのスクリプトをダブルクリックするかバッチファイルから呼び出せば実行可能です。
    • good
    • 0
この回答へのお礼

勉強させていただきます..!
是非教えてください。

お礼日時:2018/08/27 05:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報