Vbsでtxtファイルを作成するときに存在する場合は名前を変更します

ジャック

ユーザー入力を取得してテキストドキュメントに保存するプログラムを作成したいのですが、新しいドキュメントを保存するたびにファイル名を変更したいのですが

これが私が持っているものです:

Option Explicit

Dim fso
Dim firstNameInput
Dim lastNameInput
Dim count
Dim testPath
Dim exists
Dim fileName
Dim fileStream
Dim filePath

Set fso = CreateObject("Scripting.FileSystemObject")

firstNameInput = inputbox("Please enter your name")
lastNameInput = inputbox("Enter your last name")

count = 1
do
    testPath = "C:\Users\Me\Desktop\Info\peopleInfo" & count & ".txt"
    exists = fso.FolderExists(testPath)
    if(exists) then
        count + 1
    else
        exit do
    end if
loop

fileName = "peopleInfo" & count & ".txt"
filePath = "C:\Users\Me\Desktop\Info\"
Set fileStream = fso.CreateTextFile(filePath & fileName)

fileStream.WriteLine firstNameInput
fileStream.WriteLine lastNameInput
fileStream.Close

私が持っているものは機能していないようです...

だから私はこのプログラムを開くたびに、私はそれのように、ファイルを保存したいpeopleInfo1、その後peopleInfo2、その後peopleInfo3など、

ハックー

そのようなことを試してください:

    Option Explicit
    Const RootFolder = "C:\Users\Me\Desktop\Info"
    Dim fso,Folder,FirstFile,sFile,sFileNewName,firstNameInput,lastNameInput
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Not fso.FolderExists(RootFolder) Then
        fso.CreateFolder(RootFolder)
    End If
    Set Folder = fso.GetFolder(RootFolder)
    Do
        firstNameInput = inputbox("Please enter your name")
    Loop Until firstNameInput <> ""

    Do
        lastNameInput = inputbox("Enter your last name")
    Loop Until lastNameInput <> ""

    FirstFile = RootFolder &"\peopleInfo.txt"
    If Not fso.FileExists(FirstFile) Then
        Call Write2File(RootFolder & "\peopleInfo.txt")
    Else
        sFileNewName = GetNewName(FirstFile)
        Call Write2File(sFileNewName)   
    End If
    '************************************************************************************************************
    Function GetNewName(sFile)
        Dim snamebase,sname,Count,sTarget,MaxIncrementation
        MaxIncrementation = 1000
        snamebase = Split(Right(sFile, Len(sFile) - InStrRev(sFile,"\")),".")(0)
        sname = snamebase
        Count = 0
        While Count < MaxIncrementation
            sTarget = Folder & "\" & sname & ".txt"
            If fso.FileExists(sTarget) Then
                Count = Count + 1
                sName = snamebase & "(" & Count & ")"
            Else
                GetNewName = sTarget
                Exit Function
            End If
        Wend
    End Function
    '************************************************************************************************************
    Sub Write2File(File)
        Dim fileStream
        Set fileStream = fso.CreateTextFile(File)
        fileStream.WriteLine firstNameInput
        fileStream.WriteLine lastNameInput
        fileStream.Close
    End Sub
    '************************************************************************************************************

またはそのようなもの:

Option Explicit
Dim Ws,fso,RootFolder,Folder,FirstFile,sFile,sFileNewName,firstNameInput,lastNameInput,Desktop
Set Ws = CreateObject("Wscript.Shell")
RootFolder = Ws.ExpandEnvironmentStrings("%USERPROFILE%\Desktop\Info")
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(RootFolder) Then
    fso.CreateFolder(RootFolder)
End If
Set Folder = fso.GetFolder(RootFolder)
Do
    firstNameInput = inputbox("Please enter your name")
Loop Until firstNameInput <> ""

Do
    lastNameInput = inputbox("Enter your last name")
Loop Until lastNameInput <> ""

FirstFile = RootFolder &"\peopleInfo.txt"
If Not fso.FileExists(FirstFile) Then
    Call Write2File(RootFolder & "\peopleInfo.txt")
Else
    sFileNewName = GetNewName(FirstFile)
    Call Write2File(sFileNewName)   
End If
'************************************************************************************************************
Function GetNewName(sFile)
    Dim snamebase,sname,Count,sTarget,MaxIncrementation
    MaxIncrementation = 1000
    snamebase = Split(Right(sFile, Len(sFile) - InStrRev(sFile,"\")),".")(0)
    sname = snamebase
    Count = 0
    While Count < MaxIncrementation
        sTarget = Folder & "\" & sname & ".txt"
        If fso.FileExists(sTarget) Then
            Count = Count + 1
            sName = snamebase & "(" & Count & ")"
        Else
            GetNewName = sTarget
            Exit Function
        End If
    Wend
End Function
'************************************************************************************************************
Sub Write2File(File)
    Dim fileStream
    Set fileStream = fso.CreateTextFile(File)
    fileStream.WriteLine firstNameInput
    fileStream.WriteLine lastNameInput
    fileStream.Close
End Sub
'************************************************************************************************************

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ファイルがすでに存在する場合は名前を変更します

分類Dev

PowerShellが既に存在する場合は、ファイルの名前を変更してコピーします

分類Dev

同じファイルがすでに存在する場合は、ファイルの名前を変更します

分類Dev

ファイルの名前を変更し、ファイルがすでに存在する場合は数字を追加する

分類Dev

PHPの名前が存在する場合はファイル名を変更

分類Dev

ファイルが存在する場合は、フォルダー内のすべてのファイルの名前をsequencenumberで変更しますPowershell

分類Dev

すでに存在するファイルの名前を変更します

分類Dev

ファイルが存在しない場合はバッチを作成し、名前を変更します

分類Dev

Git:名前を変更したファイルはJavaでコンパイルするときに競合を引き起こします

分類Dev

java sdkを使用してs3にすでに存在する場合、ファイルの名前を自動的に変更します

分類Dev

キャメルファイルコンポーネント:ファイルを作成し、既に存在する場合は、ファイルを移動してタイムスタンプを付けて名前を変更します

分類Dev

Yii2-同じ名前のファイルが存在する場合、アップロード時にファイルの名前を変更します

分類Dev

ユーザーにファイル名とパスの入力を求め、ファイルが存在するかどうかをテストし、存在しない場合はその名前で空のファイルを作成します

分類Dev

コマンドライン:ファイル名がすでに存在する場合は、新しいファイル名でファイルを作成します

分類Dev

名前を変更するためのバッチファイル-フルパスなしで存在する場合を使用しますか?

分類Dev

File(String name)-「name」という名前のファイルがすでに存在する場合は、新しいファイルも作成しますか?

分類Dev

dirディレクトリが存在するかどうかを確認し、パスを変更するシェルスクリプト。存在しない場合は、その名前でdirを作成し、ファイル名が存在しないことも確認します。

分類Dev

名前に<string>が含まれている場合、Powershellファイルの名前を変更します

分類Dev

Pythonはファイルを新しいディレクトリにコピーし、ファイル名がすでに存在する場合は名前を変更します

分類Dev

ファイルが新しいフォルダにすでに存在する場合は、空白を含むファイルを移動して名前を変更します

分類Dev

ファイル名が存在する場合に名前を変更してターミナルからzipを抽出しますか?

分類Dev

ファイル名が存在する場合に名前を変更してターミナルからzipを抽出しますか?

分類Dev

新しいファイルを作成しますが、ファイル名がbashにすでに存在する場合は番号を追加します

分類Dev

ファイルが存在する場合でも、マージ中にgitの名前変更の検出を強制します

分類Dev

nginxで特定の.phpファイルの名前を.html名に変更することはできません

分類Dev

新しいファイルを作成しますが、ファイル名がすでに存在する場合は番号を追加します

分類Dev

lsで選択したファイルの名前を変更することはできますか?

分類Dev

バッチファイルファイルの名前を変更します保存したいファイルが存在する場合

分類Dev

ファイルに特定の構造がある場合は、Powershellでファイルの名前を変更します

Related 関連記事

  1. 1

    ファイルがすでに存在する場合は名前を変更します

  2. 2

    PowerShellが既に存在する場合は、ファイルの名前を変更してコピーします

  3. 3

    同じファイルがすでに存在する場合は、ファイルの名前を変更します

  4. 4

    ファイルの名前を変更し、ファイルがすでに存在する場合は数字を追加する

  5. 5

    PHPの名前が存在する場合はファイル名を変更

  6. 6

    ファイルが存在する場合は、フォルダー内のすべてのファイルの名前をsequencenumberで変更しますPowershell

  7. 7

    すでに存在するファイルの名前を変更します

  8. 8

    ファイルが存在しない場合はバッチを作成し、名前を変更します

  9. 9

    Git:名前を変更したファイルはJavaでコンパイルするときに競合を引き起こします

  10. 10

    java sdkを使用してs3にすでに存在する場合、ファイルの名前を自動的に変更します

  11. 11

    キャメルファイルコンポーネント:ファイルを作成し、既に存在する場合は、ファイルを移動してタイムスタンプを付けて名前を変更します

  12. 12

    Yii2-同じ名前のファイルが存在する場合、アップロード時にファイルの名前を変更します

  13. 13

    ユーザーにファイル名とパスの入力を求め、ファイルが存在するかどうかをテストし、存在しない場合はその名前で空のファイルを作成します

  14. 14

    コマンドライン:ファイル名がすでに存在する場合は、新しいファイル名でファイルを作成します

  15. 15

    名前を変更するためのバッチファイル-フルパスなしで存在する場合を使用しますか?

  16. 16

    File(String name)-「name」という名前のファイルがすでに存在する場合は、新しいファイルも作成しますか?

  17. 17

    dirディレクトリが存在するかどうかを確認し、パスを変更するシェルスクリプト。存在しない場合は、その名前でdirを作成し、ファイル名が存在しないことも確認します。

  18. 18

    名前に<string>が含まれている場合、Powershellファイルの名前を変更します

  19. 19

    Pythonはファイルを新しいディレクトリにコピーし、ファイル名がすでに存在する場合は名前を変更します

  20. 20

    ファイルが新しいフォルダにすでに存在する場合は、空白を含むファイルを移動して名前を変更します

  21. 21

    ファイル名が存在する場合に名前を変更してターミナルからzipを抽出しますか?

  22. 22

    ファイル名が存在する場合に名前を変更してターミナルからzipを抽出しますか?

  23. 23

    新しいファイルを作成しますが、ファイル名がbashにすでに存在する場合は番号を追加します

  24. 24

    ファイルが存在する場合でも、マージ中にgitの名前変更の検出を強制します

  25. 25

    nginxで特定の.phpファイルの名前を.html名に変更することはできません

  26. 26

    新しいファイルを作成しますが、ファイル名がすでに存在する場合は番号を追加します

  27. 27

    lsで選択したファイルの名前を変更することはできますか?

  28. 28

    バッチファイルファイルの名前を変更します保存したいファイルが存在する場合

  29. 29

    ファイルに特定の構造がある場合は、Powershellでファイルの名前を変更します

ホットタグ

アーカイブ