• vbs

    vbsでサブフォルダ内の拡張子のないファイルに拡張子(*.txt)を付ける

    vbsでフォルダ、サブフォルダ内の拡張子のないファイルに拡張子(*.txt)をつける
    こつは、右から4番目の1文字、右から5番目の1文字がピリオドかどうかを判断。
    ピリオドではない場合、拡張子.txtをつける。
    (拡張子が、3桁、4桁限定です。フォルダの中に、それ以外の桁の拡張子がある場合は、
    ロジックを追加する必要があります。)

    
    Option Explicit
    
    ' 拡張子txtを付加するパス
    Dim fileListPath
    fileListPath = InputBox("フォルダを入力してください。","入力ダイアログ")
    
    ' ファイルシステムオブジェクトの作成
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' ファイル一覧の取得
    Call GetFileList(fso.GetFolder(fileListPath))
    
    ' ファイルシステムオブジェクトの破棄
    Set fso = Nothing
    
    ' 処理終了
    msgbox "終了"
    WScript.Quit
    
    ' ファイル一覧の取得関数
    Function GetFileList(Byval targetPath)
            Dim folder, file,pri1,pri2,pri3,pri4
    
            ' フォルダが存在する場合は、そのフォルダ配下を探索する
            For Each folder In targetPath.SubFolders
                GetFileList(folder)
            Next
    
            ' 拡張子がない場合は".txt"を付加
            For Each file In targetPath.files
                    pri1 = right(file,4)
                    pri2 = left(pri1,1)
                    pri3 = right(file,5)
                    pri4 = left(pri3,1)
                    if pri2 <> "." and  pri4 <> "."  then
                        fso.MoveFile file,file &  ".txt" 
                    end if
            Next
    End Function
    
    
    
  • vbs

    vbsで初歩的なひな型を作成

    vbsで初歩的なひな型を作成しました。

    shift-jisのテキストを読んで、
    条件に合致したものを
    shift-jisの別のファイル名で出力するものです。
    これさえあれば、vbsのとっかかりとして
    使えます。
    リンクをクリックし、
    コピペでテキストエディタへ貼り付け、
    拡張子を.vbsにして、実行してください。
    編集はサクラエディタでタイプ別設定一覧のvisual basicに拡張子,vbsを追加すると
    編集がしやすい。

    無題4 – コピー.vbs

    
    Option Explicit
    
    Dim inp
    Dim fso
    Dim readLine
    
    inp = InputBox("ファイル名を入力してください。", "入力")
     
    ' ファイルシステムオブジェクト
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    '入力ファイル
    Dim inpFile
    Set inpFile = fso.OpenTextFile(inp, 1)
    
    '出力ファイル
    Dim outFile
    Set outFile = fso.openTextFile(inp & "_out.txt", 2, true,0) 
    
    ' 入力ファイルから一行ずつ読み込み
    Do While Not inpFile.AtEndOfLine
    	' 一行読み込み
    	readLine = inpFile.ReadLine
    
    	if mid(readLine,1,1) = "1" then
    
    		outFile.WriteLine(CStr(readLine))
    
    	end if 
    
    	'無限ループ防止
    	If Err.Number <> 0 Then WScript.Quit
    Loop
    
    
    'ファイルを閉じる
    inpFile.Close
    
    
    'ファイルを閉じる
    outFile.Close 
    
    msgbox "処理は終わりました"