SSブログ

PowerShell小僧:ファイル名の一括置換(改22) [コンピューター]

【前記事】
PowerShell小僧:ファイル名の一括置換(改21)
https://cheese999.blog.ss-blog.jp/2021-12-06

に対して、以下の変更をしました。

・Get-ChildItemコマンドレットに-Recurseオプションが付いているところと、ついていないところがあり、指定したフォルダが最下層でない場合、対象ファイル数=0で終了してしまうので、全て-Recurseオプションを付けてみました。

【マクロ】
## 機能 ##
# Zip圧縮されたフォルダを解凍
# フォルダ下のファイルに連番の名前を付ける
# JPEGファイルの拡張子を.jpgに統一
# フォルダをZip再圧縮する。
## 定数 ##
# 文字コード変換DLL
$myDLL = "D:\Document\033_PowerShell\ReadJEnc\dll\net47\Hnx8.ReadJEnc.dll"
# $myDLL = "E:\Users\理一\Document\033_PowerShell\ReadJEnc\dll\net47\Hnx8.ReadJEnc.dll"
# スクリプトがある場所
if($PSVersionTable.PSVersion.Major -ge 3){
  $ScriptPath1 = $PSScriptRoot
}else{
  $ScriptPath1 = Split-Path $MyInvocation.MyCommand.Path -Parent
}
Write-Host "`$PSVersionTable.PSVersion.Major="$PSVersionTable.PSVersion.Major
Write-Host "`$ScriptPath1="$ScriptPath1
$myAnswer1 = Read-Host "OK?"
# 履歴ファイル
$HistFile1 = $ScriptPath1+"\FilePath1.txt"
# 履歴ファイルのパラメータ数
$Num_Hist1 = 10
# 拡張子ファイル
$ExtFile1 = $ScriptPath1+"\FileExtension1.txt"
# 関数ファイル
$myFunctionFile1 = $ScriptPath1+"\myFunction1_UTF8.ps1"
## 関数読み込み ##
. $myFunctionFile1
# JPGファイル
# $JpgExt_array = @("jpeg", "jpe", "jfif", "jpg_large")
# メイン部分
# DLLを読み込み
$myAnswer1 = myFFileExist1 -myFileText1 "文字コード変換DLL" -myFilePath1 ([ref]$myDLL)
if($myAnswer1 -eq $FALSE){exit} # DLLが存在しない場合は終了
[Reflection.Assembly]::LoadFile($myDLL) > $null
# 拡張子ファイルを読み込み
$myAnswer1 = myFFileExist1 -myFileText1 "拡張子ファイル" -myFilePath1 ([ref]$ExtFile1)
if($myAnswer1 -eq $FALSE){exit} # 拡張子ファイルが存在しない場合は終了
# 拡張子ファイルの文字コード確認
$myMojiCoding1 = myFChkMojiCode1 -TargetFile1 $ExtFile1
Write-Host "`$reader.Read(`$file).Name="$myMojiCoding1[0]
Write-Host "`$myMojiCoding1="$myMojiCoding1[1]
Write-Host "拡張子ファイルの行数="$myMojiCoding1[2]
$myLine1 = $myMojiCoding1[2]
If($myMojiCoding1[1] -eq -1){
  # 拡張子ファイルの文字コードが不明な場合
  Write-Host "拡張子ファイルの文字コードが不明です。"
  exit
}Else{
  # 拡張子ファイルの文字コードが明確な場合
  # 拡張子変数の配列宣言
  $myExt1 = New-Object "object[,]" $myLine1,3
  # 拡張子ごとのファイル数の配列宣言
  $myExtCount1 = @()
  $myCNT4 = 0 # 拡張子カウンタ
  $Str_array1 = @() # 配列初期化
  foreach($tmpExt1 in Get-Content $ExtFile1 -Encoding $myMojiCoding1[1]){
    $Str_array1 = $tmpExt1 -Split ",";
    $myExt1[$myCNT4,0] = $Str_array1[0] # 拡張子(変更前)
    $myExt1[$myCNT4,1] = $Str_array1[1] # 0/1 = 拡張子変更(jpg)しない/する
    $myExt1[$myCNT4,2] = $Str_array1[2] # 拡張子(変更後)
    $myExt1_0 = $myExt1[@($myCNT4,0)]
    $myExt1_1 = $myExt1[@($myCNT4,1)]
    $myExt1_2 = $myExt1[@($myCNT4,2)]
    $myCNT4_1 = $myCNT4 + 1
    Write-Host "`$myExt1("$myCNT4_1"/"$myLine1")="$myExt1_0","$myExt1_1","$myExt1_2
    $myCNT4++
  }
  # $myExtLine1 = $myExt1.Length # 拡張子変数の配列要素数
}
Read-HostDefault "OK?" > $null # 入力待ち
# 文字コードをUTF-8に変更
chcp 65001
# 文字コードを表示
myFShChrCd1
# 現在のパス
$CurrentPath1 = Get-Location
Write-Host "現在のパス="$CurrentPath1
Write-Host "スクリプトがある場所="$ScriptPath1
Read-HostDefault "OK?" > $null # 入力待ち
# 履歴変数の配列宣言
$PrevPath1 = @()
# エラーフラグをリセット
$ErrFlg1 =$FALSE
# 履歴ファイルの存在確認
$myAnswer1 = myFFileExist1 -myFileText1 "履歴ファイル" -myFilePath1 ([ref]$HistFile1)
if($myAnswer1 -eq $FALSE){exit} # 履歴ファイルが存在しない場合は終了
# 履歴ファイルの文字コード確認
$myMojiCoding1 = myFChkMojiCode1 -TargetFile1 $HistFile1
Write-Host "`$reader.Read(`$file).Name="$myMojiCoding1[0]
Write-Host "`$myMojiCoding1="$myMojiCoding1[1]
Write-Host "履歴ファイルの行数="$myMojiCoding1[2]
$myLine2 = $myMojiCoding1[2]
If($myMojiCoding1[1] -eq -1){
  # 履歴ファイルの文字コードが不明な場合
  Write-Host "履歴ファイルの文字コードが不明です。"
  # $PrevPath1 += $CurrentPath1
  exit # 強制終了
}Else{
  # 履歴ファイルの文字コードが明確な場合
  # 履歴ファイルを履歴変数(配列)に読み込み
  # $PrevPath1=Get-Content $HistFile1 -totalcount 1 -Encoding $myMojiCoding1
  # $OutputEncoding = [console]::OutputEncoding;
  # Write-Host "`$PrevPath1=$PrevPath1"
  $PrevPath1=(Get-Content $HistFile1 -Encoding $myMojiCoding1[1]) -as [string[]]
}
# 履歴カウンタ
[int]$myCNT1 = 1
# 履歴の数だけ繰り返し
foreach ($MyPrev1 in $PrevPath1){
  Write-Host "履歴番号("$myCNT1"/"$myLine2")"
  $Str_array1 = @() # 配列初期化
  $Str_array1 = $MyPrev1 -Split "," # 履歴をカンマで区切る
  Set-Location -LiteralPath $ScriptPath1
  $myResult3 = .\HistCheck1.ps1 -Hist_array1 $Str_array1 -NumHist1 $Num_Hist1 -ScriptPath1 $ScriptPath1
  # 履歴チェック
  if($myResult3 -eq $FALSE){
    # 履歴チェック:エラー
    $ErrFlg1 = $TRUE
  }else{
    # 履歴チェック:OK
    $InFileType1 = $Str_array1[0] # 履歴0 : 入力ファイル:0/1 = zip/フォルダ
    switch($InFileType1){
      0{$myFilePath2 = $Str_array1[1]} # 履歴1 : Zipファイルのパス
      1{$MyFilePath1 = $Str_array1[1]} # 履歴1 : ファイルがあるフォルダ
      Default{$myFilePath2 = $Str_array1[1]} # 履歴1 : Zipファイルのパス
    }
    $MyFlag1 = $Str_array1[2] # 履歴2 : 0/1 = 対話/バッチ
    $NewFileName1 = $Str_array1[3] # 履歴3 : 新しいファイル名
    [String]$StartNo = $Str_array1[4] # 履歴4 : ファイル名の連番の開始番号
    $AddDate1 = $Str_array1[5] # 履歴5 : 0/1 = ファイル名に日付を追加しない/追加する
    $AddYoubi1 = $Str_array1[6] # 履歴6 : 0/1 = ファイル名に曜日を追加しない/追加する
    $AddTime1 = $Str_array1[7] # 履歴7 : 0/1 = ファイル名に時刻を追加しない/追加する
    $ChgExt1 = $Str_array1[8] # 履歴8 : 0/1 = 拡張子を変更しない/変更する
    $FlgCompZip1 = $Str_array1[9] # 履歴9 : 0/1 = Zip圧縮をしない/する
    Write-Host "履歴番号(myCNT1/myLine1)=($myCNT1/$myLine2)"
    Write-Host "InFileType1="$InFileType1
    switch($InFileType1){
      0{Write-Host "MyFilePath2="$MyFilePath2}
      1{Write-Host "MyFilePath1="$MyFilePath1}
      Default{Write-Host "MyFilePath2="$MyFilePath2}
    }
    Write-Host "MyFlag1="$MyFlag1
    Write-Host "NewFileName1="$NewFileName1
    Write-Host "StartNo="$StartNo
    Write-Host "AddDate1="$AddDate1
    Write-Host "AddYoubi1="$AddYoubi1
    Write-Host "AddTime1="$AddTime1
    Write-Host "ChgExt1="$ChgExt1
    Write-Host "FlgCompZip1="$FlgCompZip1
    # $tmpStr1 = $InFileType1.Substring(0,1)
    # Write-Host "tmpStr1="$tmpStr1
    # if($tmpStr1 -eq "#"){
    # Write-Host "履歴の頭文字が#なので変換をスキップします。"
    # $ErrFlg1 = $TRUE
    # }
    Read-HostDefault "OK?" > $null # 入力待ち
  }
  if(($MyFlag1 -eq 0) -and ($ErrFlg1 -eq $FALSE)){
    # Zipファイル/ファイルがあるフォルダのパスを入力
    switch($InFileType1){
      0{$MyFilePath2 = Read-HostDefault "($myCNT1/$myLine2)ファイル名変更の対象ファイルのZipファイル?" $MyFilePath2}
      1{$MyFilePath1 = Read-HostDefault "($myCNT1/$myLine2)ファイル名変更の対象ファイルがあるフォルダ?" $MyFilePath1}
      Default{$MyFilePath2 = Read-HostDefault "($myCNT1/$myLine2)ファイル名変更の対象ファイルのZipファイル?" $MyFilePath2}
    }
  }
  if(($ErrFlg1 -eq $FALSE) -and ($InFileType1 -eq 0)){
    if(-Not(Test-Path $MyFilePath2)){
      # Zipファイルが存在しない
      Write-Host "Zipファイル("$MyFilePath2")が存在しません。"
      $ErrFlg1 = $TRUE
    }else{
      # Zipファイルが存在する場合、解凍
      Set-Location -LiteralPath $ScriptPath1
      $myResult2 = .\Extract1.ps1 -InZip1 $MyFilePath2 -ScriptPath1 $ScriptPath1
      if($myResult2[0] -eq $TRUE){
        $MyFilePath1 = $myResult2[1]
      }else{
        $ErrFlg1 = $TRUE
      }
    }
  }else{
    Write-Host "Zipファイルの解凍処理をスキップします。"
  }
  Read-HostDefault "OK?" > $null # 入力待ち
  if(($ErrFlg1 -eq $FALSE) -and (-Not(Test-Path $MyFilePath1))){
    Write-Host "フォルダ("$MyFilePath1")が存在しません。"
    $ErrFlg1 = $TRUE
  }
  if($ErrFlg1 -eq $FALSE){
    # ファイルがあるフォルダへ移動
    Set-Location -LiteralPath $MyFilePath1
    $NumFile1 = (Get-ChildItem -Recurse|Measure-Object).Count # Recurseを追加
    if($NumFile1 -eq 0){
      Write-Host "フォルダ("$MyFilePath1")にファイルが存在しません。"
      $ErrFlg1 = $TRUE
    }else{
      # ファイル名の一覧を表示
      Write-Host "変更前のファイル名です。"
      Get-ChildItem -Recurse
      Write-Host "ファイル数="$NumFile1
      $myINPUT1 = "Y"
      if($MyFlag1 -eq 0){
        $myINPUT1 = Read-HostDefault "ファイル名を変更しますか(Y/N)?" "N"
      }
    }
  }
  if(($ErrFlg1 -eq $FALSE) -and ($myINPUT1 -eq "Y")){
    # エラーフラグが偽、かつ、答えがYなら、ファイル名の設定を実行
    $NewFileName2 = myFSetFileName1 -MyFilePath1 $MyFilePath1 `
    -MyFlag1 $MyFlag1 -NewFileName1 $NewFileName1 -AddDate1 $AddDate1 -AddYoubi1 $AddYoubi1 -AddTime1 $AddTime1
    # ファイル名の連番の開始番号を入力
    if($MyFlag1 -eq 0){
      [String]$StartNo = Read-HostDefault "ファイル名の連番の開始番号?" $StartNo
    }
    # ヌル判定
    # if ([String]::IsNullOrEmpty($StartNo)){
    # Write-Host "開始番号に何も入力されなかったので、開始番号=1とします。"
    # [string]$StartNo = "1"
    # 入力待ち
    # Read-HostDefault "OK?" > $null
    # }
    # 変換後の整数変数
    [Int]$StartNo1 = 0
    # 整数変換
    [Bool]$Result1 = [int]::TryParse($StartNo, [ref]$StartNo1)
    if($Result1 -eq $FALSE){
      Write-Host "開始番号="$StartNo" に整数以外が入力されたのでスキップします。"
      $ErrFlg1 = $TRUE
    }
    if($ErrFlg1 -eq $FALSE){
      # 新しいファイル名の確認
      $myINPUT1 = "Y"
      if($MyFlag1 -eq 0){
        [String]$String1 = "新しいファイル名:" + $NewFileName2 + $StartNo1.tostring("000") + ".jpg でよろしいですか(Y/N)?"
        $myINPUT1 = Read-HostDefault $String1 "N"
      }
    }
    if(($ErrFlg1 -eq $FALSE) -and ($myINPUT1 -eq "Y")){
      # xxxxxxxxx_001.xxx, xxxxxxxxx_002.xxx と昇順で名前を付け替える
      # 一時的な名前($tmpName1)を発生
      $tmpName1 = myRndStr1(10) # 10文字
      $tmpName1 += "_"
      write-host "一時的なファイル名(`$tmpName1)=$tmpName1"
      if($MyFlag1 -eq 0){Read-HostDefault "OK?" > $null} # 入力待ち
      # 1回目の変換後にファイル名の重複が発生する場合は中止
      # 検索パタン
      $myPattern = "^" + $tmpName1 + "[0-9]{3}"
      # 重複ファイル数
      $myMatchCount = (Get-ChildItem|Where-Object {$_.Name -match $myPattern}|Measure-Object).Count
      #Write-Host "`$myMatchCount=$myMatchCount"
      if($myMatchCount -ge 1){
        Write-Host "ファイル名の重複が発生するため、ファイル名の変更を中止します。"
        Read-HostDefault "OK?" > $null # 入力待ち
      }else{
        # フォルダ下の拡張子数
        $myExtCount2 = (Get-ChildItem -Recurse -File | ForEach-Object{$_.Extension} | Sort-Object -CaseSensitive | Get-Unique | ForEach-Object{$_ -replace "\.",""}|measure-object -Line).Lines
        # 拡張子変数(フォルダ)の配列宣言
        $myExt2 = New-Object "object[,]" $myExtCount2,4
        [int]$myCNT4 = 0 # 拡張子カウンタ
        # $myLine1 = (Get-Content -LiteralPath $ExtFile1|Measure-Object -Line).Lines
        foreach($tmpExt2 in (Get-ChildItem -Recurse -File | ForEach-Object{$_.Extension} | Sort-Object -CaseSensitive | Get-Unique | ForEach-Object{$_ -replace "\.",""})){
          $myExt2[$myCNT4,0] = $tmpExt2 # 拡張子(変更前)
          $myExt2[$myCNT4,1] = 0 # 0/1 = 拡張子変更(jpg)しない/する
          $myExt2[$myCNT4,2] = $tmpExt2 # 拡張子(変更後)
          $myExt2[$myCNT4,3] = 0 # 0/1 = 作業非対象/作業対象
          # 拡張子ファイルに存在する拡張子のみ作業対象とする
          for($i = 0; $i -lt $myLine1; $i++){
            if($tmpExt2 -ceq $myExt1[@($i,0)]){
              $myExt2[$myCNT4,1] = $myExt1[@($i,1)]
              $myExt2[$myCNT4,2] = $myExt1[@($i,2)]
              $myExt2[$myCNT4,3] = 1 # 1 = 作業対象
            }
          }
          $myExt2_0 = $myExt2[@($myCNT4,0)]
          $myExt2_1 = $myExt2[@($myCNT4,1)]
          $myExt2_2 = $myExt2[@($myCNT4,2)]
          $myExt2_3 = $myExt2[@($myCNT4,3)]
          $myCNT4_1 = $myCNT4 + 1
          Write-Host "`$myExt2("$myCNT4_1"/"$myExtCount2")="$myExt2_0","$myExt2_1","$myExt2_2","$myExt2_3
          $myCNT4++
        }
        [int]$TotalCount1 = 0 # 総ファイル数(作業対象)
        [int]$TotalCount2 = 0 # 総ファイル数(作業非対象)
        [int]$TotalCount3 = 0 # 総ファイル数(作業対象+作業非対象)
        $TotalCount3 = (Get-ChildItem -Recurse -File *.* | Measure-Object).Count
        $NonTargetFiles1 = Get-ChildItem -Recurse -File *.* # 作業非対象ファイル
        [int]$myCNT4 = 0 # 拡張子カウンタ
        for($myCNT4 = 0; $myCNT4 -lt $myExtCount2; $myCNT4++){
          [int]$myCNT2 = 0 # ファイル数のカウンタ
          # 一度目のファイル名一括変換(一時的なファイル名への変換)
          $tmpExt2 = $myExt2[@($myCNT4,0)]
          $tmpExt2_1 = "." + $tmpExt2
          # Write-Host "tmpExt2_1="$tmpExt2_1
          $myExtCount1 += (Get-ChildItem -Recurse -File *.$tmpExt2| Where-Object {$_.Extension -ceq $tmpExt2_1} | Measure-Object).Count # 拡張子ごとのファイル数を配列に追加
          $myExt2_3 = $myExt2[@($myCNT4,3)]
          if($myExt2_3 -eq 1){
            Get-ChildItem -Recurse -File *.$tmpExt2| Where-Object {$_.Extension -ceq $tmpExt2_1} | Sort-Object Name | ForEach-Object -Begin {$myCNT2 = $StartNo1} -Process { $Newname = $tmpName1+$myCNT2.tostring("000")+$_.extension; rename-item $_ $Newname; $myCNT2++ }
            $StartNo1 = $myCNT2 # 次の拡張子の開始番号
            $NonTargetFiles1 = $NonTargetFiles1 | Where-Object {$_.Extension -cne $tmpExt2_1}
            $j=$myExtCount1[$myCNT4] # 拡張子ごとのファイル数を作業用変数に格納
            $TotalCount1 += $j # 拡張子ごとのファイル数を総ファイル数に足す
            $myCNT4_1 = $myCNT4 + 1
            Get-ChildItem -Recurse -File *.$tmpExt2 | Where-Object {$_.Extension -ceq $tmpExt2_1} | Write-Output | Write-Host
            Write-Host $tmpExt2"("$myCNT4_1"/"$myExtCount2")のファイル数="$j
          }
        }
        $TotalCount2 = $TotalCount3 - $TotalCount1
        Write-Host ""
        Write-Host "総ファイル数(作業対象)="$TotalCount1
        Write-Host ""
        Write-Output $NonTargetFiles1 | Write-Host
        Write-Host "総ファイル数(作業非対象)="$TotalCount2
        Write-Host ""
        Write-Host "総ファイル数(作業対象+作業非対象)="$TotalCount3
        if($MyFlag1 -eq 0){Read-HostDefault "OK?" > $null} # 入力待ち
        Write-Host "一度目のファイル名一括変換後のファイル名"
        Get-ChildItem -Recurse # ファイル一覧
        if($MyFlag1 -eq 0){Read-HostDefault "OK?" > $null} # 入力待ち
        # if ([String]::IsNullOrEmpty($myINPUT1)){
        # echo "INPUTはNull"
        # }else{
        # echo "INPUTはNullではない"
        # }
        # Read-HostDefault "OK?" > $null
        # 二度目のファイル名一括変換
        for($myCNT4 = 0; $myCNT4 -lt $myExtCount2; $myCNT4++){
          $tmpExt2 = $myExt2[@($myCNT4,0)]
          $tmpExt2_1 = "." + $tmpExt2
          $myExt2_3 = $myExt2[@($myCNT4,3)]
          if($myExt2_3 -eq 1){
            Get-ChildItem -Recurse -File *.$tmpExt2 | Where-Object {$_.Extension -ceq $tmpExt2_1} | Rename-Item -NewName { $_.Name -replace $tmpName1,$NewFileName2 }
          }
        }
        # 拡張子(jpeg, jpe, jfif, jpg_large)をjpgに変更
        for($myCNT4 = 0; $myCNT4 -lt $myExtCount2; $myCNT4++){
          $tmpExt2 = $myExt2[@($myCNT4,0)]
          $myExt2_1 = $myExt2[@($myCNT4,1)]
          $myExt2_2 = $myExt2[@($myCNT4,2)]
          $myExt2_3 = $myExt2[@($myCNT4,3)]
          $j=$myExtCount1[$myCNT4]
          if(($myExt2_1 -eq 1) -and ($myExt2_3 -eq 1) -and ($j -ge 1)){myFExtChnge1 $tmpExt2 $myExt2_2 $j $MyFlag1 $ChgExt1}
        }
        # if($MyFlag1 -eq 0){Read-HostDefault "OK?" > $null} # 入力待ち
        Write-Host "二度目のファイル名一括変換後のファイル名"
        Get-ChildItem -Recurse # ファイル一覧
        if($MyFlag1 -eq 0){
          $FlgCompZip1 = Read-HostDefault "Zip圧縮しますか? (しない/する=0/1)" $FlgCompZip1
        }
        # Zip圧縮
        if($FlgCompZip1 -eq 1){
          $myFilePath2 = Convert-Path ".." # 1つ上のフォルダの絶対パス
          $NewFileName3 = $NewFileName1.Replace("_","") # 新しいファイル名から_を取る
          $NewFileName3 = $NewFileName3 + ".zip" # 拡張子zipをつける
          $myFilePath2 = $myFilePath2 + "\" + $NewFileName3
          myFCompZip2 -InFolderName1 $MyFilePath1 -OutZipName1 $myFilePath2 -ScriptPath1 $ScriptPath1
          if($MyFlag1 -eq 0){Read-HostDefault "OK?" > $null} # 入力待ち
        }else{
          Write-Host "Zip圧縮しません。"
        }
      }
    }else{
      Write-Host "新しいファイル名の確認でY以外が入力された"
      Write-Host "ファイル名の変更をスキップします。"
      Read-HostDefault "OK?" > $null # 入力待ち
    }
  }else{
    if(($ErrFlg1 -eq $FALSE) -and ($myINPUT1 -eq "N")){
      Write-Host "ファイル名を変更しますか(Y/N)? にY以外が入力された"
    }
    Write-Host "ファイル名を変更しません。"
    Read-HostDefault "OK?" > $null # 入力待ち
  }
  # ファイルパス、他を履歴ファイルに出力
  if($myResult3 -eq $FALSE){
    # 履歴チェックがエラーの場合
    $tmpStr1 = $MyPrev1 # 分割前の履歴1行分
  }else{
    # 履歴チェックが正常の場合
    switch($InFileType1){
      0{$tmpStr1 = $InFileType1 + "," + $MyFilePath2 + "," + $MyFlag1 + "," + $NewFileName1 + "," + $StartNo}
      1{$tmpStr1 = $InFileType1 + "," + $MyFilePath1 + "," + $MyFlag1 + "," + $NewFileName1 + "," + $StartNo}
      Default{$tmpStr1 = $InFileType1 + "," + $MyFilePath2 + "," + $MyFlag1 + "," + $NewFileName1 + "," + $StartNo}
    }
    $tmpStr1 = $tmpStr1 + "," + $AddDate1 + "," + $AddYoubi1 + "," + $AddTime1
    $tmpStr1 = $tmpStr1 + "," + $ChgExt1 + "," + $FlgCompZip1
  }
  # $myLine1 = (Get-Content -LiteralPath $HistFile1|Measure-Object -Line).Lines
  Write-Host "履歴番号("$myCNT1"/"$myLine2")の履歴を書き込みます。`r`n"
  switch ($myCNT1){
    # 初回は新規書き込み
    1{
      if($myCNT1 -ne $myLine2){
        Set-Content -Encoding UTF8 -LiteralPath $HistFile1 -Value $tmpStr1
      }else{
        # 最終行では改行しない(-NoNewline)
        Set-Content -Encoding UTF8 -NoNewline -LiteralPath $HistFile1 -Value $tmpStr1
      }
    }
    # 2回目以降は追記
    Default{
      if($myCNT1 -ne $myLine2){
        Add-Content -Encoding UTF8 -LiteralPath $HistFile1 -Value $tmpStr1
      }else{
        # 最終行では改行しない(-NoNewline)
        Add-Content -Encoding UTF8 -NoNewline -LiteralPath $HistFile1 -Value $tmpStr1
      }
    }
  }
  $myCNT1++ # 履歴カウンタをインクリメント
  $ErrFlg1 =$FALSE # エラーフラグをリセット
}
End_Process1($CurrentPath1)
ヤバイぜ!(12)  コメント(1) 
共通テーマ:パソコン・インターネット

ヤバイぜ! 12

コメント 1

cheese999

ヤバイぜ! ありがとうございます(^_0)ノ
by cheese999 (2022-05-02 22:32) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字(英大文字の「オー」、英小文字の「ユー」、アラビア数字の「ハチ」、アラビア数字の「イチ」、アラビア数字の「ニ」)を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。