忍者ブログ

◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【BAT】複数ファイル一括コピーのスクリプト

【使い方】
 例えば、C:\TESTフォルダを作って以下のファイルを作成する
  [File_Copy_01.bat]  ⇒ダブルクリックで実行(※スクリプトは下記参照)
  [Dir_LIST_01.txt]   ⇒コピー先フォルダ記入
  [exclude.txt]     ⇒コピー除外ファイル記入
  [コピー元のファイル]  ⇒例えば、拡張子「.txt」全てが対象の場合

File_Copy_01.bat」 ← バッチファイル名

@echo off
:---------------------------------------------------
:【0】変数セット
:---------------------------------------------------
:+++ echo %~dp0
set Path_01=%~dp0
set File_01=Dir_LIST_01.txt
set Ful_Path_01=%PATH_01%%File_01%
set PATH_02=%PATH_01%linux\
:+++ set File_02=Dir_LIST_02.txt
:+++ set Ful_Path_02=%PATH_01%%File_02%
set PATH_03=%PATH_01%win\
:+++ set File_03=Dir_LIST_03.txt
:+++ set Ful_Path_03=%PATH_01%%File_03%
:+++ echo %Ful_Path_01%
:+++ Dir /s /b /a:d .\Dir_TEST >.\Dir_LIST_01.txt
:---------------------------------------------------
:【1】開始(ループ処理)
:---------------------------------------------------
for /f %%a in (%Ful_Path_01%) do @call :F_01 %%a
:---------------------------------------------------
:【3】終了(メッセージ出力)
:---------------------------------------------------
echo .
echo ***END***
echo .
:+++ DEL /q /f .\Dir_LIST_01.txt
pause
:---------------------------------------------------
:【2】関数(ファイルコピー)
:---------------------------------------------------
:F_01
set ZzZ=%1
@echo on
XCOPY %Path_01%*.txt %ZzZ%\ /Y /EXCLUDE:C:\TEST\exclude.txt
XCOPY %Path_02%*.txt %ZzZ%\ /Y /EXCLUDE:C:\TEST\exclude.txt
XCOPY %Path_03%*.txt %ZzZ%\ /Y /EXCLUDE:C:\TEST\exclude.txt
@echo off
PR

【BAT】空フォルダの作成バッチ

◆テキストに書いてあるパスをフォルダ作成

[フォルダ作成.bat] ←ファイル名
 for /f %%a in (%1) do md %%a

【使い方】
 このバッチに、テキストをドラッグ

※スペースを含む文字がある場合は以下のようにする

 for /f "delims=" %%a in (%1) do md "%%a"

【VBA】日付表示を「月/日.」に変更する処理

Option Explicit
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
 Sub main()
   '--- --- --- --- --- --- --- --- --- ---
   '□ 最終行の取得
   '--- --- --- --- --- --- --- --- --- ---
    Dim Last_Row As Long                                  '最終行数用変数
    Last_Row = 0                                                 '最終行数の変数をゼロクリア
    Last_Row = Cells(1, "B").End(xlDown).Row  '最終行の数を取得
   '--- --- --- --- --- --- --- --- --- ---
   '--- --- --- --- --- --- --- --- --- ---
   '□ 日付の表示変更(シリアル値 ⇒ m/d形式)
   '--- --- --- --- --- --- --- --- --- ---
   Dim Row_i As Long         'ループカウント用
   Dim A_Value As Variant  'セルの値を格納

   For Row_i = 2 To Last_Row

      A_Value = Cells(Row_i, "B").Value
      MsgBox A_Value

      '# 文字の長さ判定

      If Len(A_Value) < 7 Then
         '# 処理なし
      Else
         A_Value = Format(A_Value, "m/d")
         A_Value = A_Value & "."
      End If

      '# 文字の長さ判定

      If Len(A_Value) >= 8 Then
         A_Value = Mid(A_Value, 6)
      End If

      MsgBox A_Value

      Cells(Row_i, "B") = A_Value
   Next
   '--- --- --- --- --- --- --- --- --- ---
 End Sub
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼

【サクラエディタ】作業メモ

サクラエディタはフリーソフトだが、非常に使い勝手が良く
工夫次第で作業効率を飛躍させることが出来る便利なツールなので
サクラエディタの操作で覚えておくことを以下にメモしておく…

 (矩形選択) ⇒  Altキーを押しながら選択
 (ソート)  ⇒  Alt + A
 (マージ)  ⇒  Alt + M
 (改行)  ⇒  \r\n ※正規表現の場合

※他にもgrep検索だとか色々と便利な機能があったりする。
#=============================
# ■空白行の正規表現
^[\r\n]+

【PowerShell】フォルダ内容一覧表示

以下のようにバッチファイルからPowershellスクリプトを呼んで処理する場合の例
[_PowerShell_実行.bat] ←バッチファイル名
 @echo off
 echo .
 echo *********************************
 echo ★ Powershellスクリプトを実行 ★
 echo *********************************
 echo .
 @echo on
 powershell -ExecutionPolicy RemoteSigned -File .\_PowerShell_001.ps1
 powershell -ExecutionPolicy RemoteSigned -File .\_PowerShell_002.ps1
 @echo off
 echo .
 echo ▲▼▲▼▲▼▲ 実行完了 ▼▲▼▲▼▲▼
 echo .
 pause

[_PowerShell_001.ps1] ←スクリプトファイル名

 # ★カレントフォルダの中身を一覧表示(名前、更新日時)名前順にソート
 # テキストファイルに出力

 Get-ChildItem .\ -File -Recurse | Sort-Object FullName | Out-File -LiteralPath .\_XXX_LIST_01.txt

 Get-ChildItem .\ -Recurse | Sort-Object FullName | Format-Table -Property Attributes, LastWriteTime, Name, Mode, DirectoryName | Out-File -LiteralPath .\_XXX_LIST_02.txt -Encoding Default

 # CSVファイルに出力
 Get-ChildItem .\ -Recurse | Sort-Object FullName | Select-Object Attributes, LastWriteTime, Name, Mode, DirectoryName | Export-Csv -LiteralPath .\_XXX_LIST_File.csv -Encoding Default

 Get-ChildItem .\ -File -Recurse | Sort-Object FullName | Select-Object Name | Where-Object { ! $_.PSIsContainer } | Out-File -LiteralPath .\_XXX_Name_csv_File.csv

 Get-ChildItem .\ -File -Recurse | Sort-Object FullName | Select-Object LastWriteTime | Get-Date -Format "yyyy/M/d" | Out-File -LiteralPath .\_XXX_Date_csv_File.csv

 Get-ChildItem .\ -File -Recurse | Sort-Object FullName | Select-Object LastWriteTime | Get-Date -Format "HH:mm" | Out-File -LiteralPath .\_XXX_TIME_csv_File.csv
 
[_PowerShell_002.ps1] ←スクリプトファイル名
 cat .\_XXX_LIST_01.txt

 $LIST = Get-Content .\_XXX_LIST_01.txt | ForEach-Object { $_ -replace '\b0+\B' }

 $LIST | Out-File .\_XXX_LIST_01_MMDD.txt

 # デフォルトの文字コード表示

 [System.Text.Encoding]::Default

 # ディレクトリのみ抽出
 dir -Directory -Recurse | Select FullName > _XXX_Directory_Path.txt

 # 加工しやすいように出力
 Get-ChildItem .\ -File -Recurse | Sort-Object FullName | Select-Object LastWriteTime, Name, DirectoryName | Where-Object { ! $_.PSIsContainer } | Export-Csv -LiteralPath .\_Export_CSV_.csv -Encoding Default | Format-Table -AutoSize | Out-String -Width 4096

 Get-ChildItem .\ -File -Recurse | Sort-Object FullName | Select-Object LastWriteTime  | Where-Object { ! $_.PSIsContainer } | Export-Csv -LiteralPath .\_YYYYMMDD_hhmm_.txt -Encoding Default | Format-Table -AutoSize | Out-String -Width 4096


【VBA】セル範囲を配列化する処理の関数

Option Explicit
'▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲
'■【メイン処理】
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
 Sub main()
   
    Dim myRange As Range
    Dim F_Array() As String
    Erase F_Array()         '■ 配列初期化■
   
    Set myRange = ActiveSheet.Range("B2", "C20")        '■ セル範囲を格納■
   
    '***************************************
    '■【セル範囲を配列化する処理】
    '***************************************
    Call Func_03(myRange, F_Array())        '■ 関数呼び出し■
    Cells(22, "B") = F_Array(0)        '戻り値をセルに反映
    Cells(23, "B") = F_Array(1)        '戻り値をセルに反映
    Cells(24, "B") = F_Array(2)        '戻り値をセルに反映
    '***************************************
   
    Set myRange = Nothing
'★        myRange.Cells.SpecialCells(xlCellTypeBlanks).Interior.Color = RGB(255, 128, 128)
 
 End Sub
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
'************************************************
'■【セル範囲を配列化する処理】
'************************************************
 Function Func_03(R_Range As Range, R_Array() As String)
   
    Dim myArray As Variant
    myArray = R_Range
    Dim Row_max, Column_max As Long '■ 行/列の変数■
    Row_max = UBound(myArray, 1)    '■ 行要素番号の最大値を取得(第二引数は省略可)■
    Column_max = UBound(myArray, 2) '■ 列要素番号の最大値を取得■
   
    Dim Row_i, Column_i As Long     '■ 行/列のカウント用変数■
    Dim Array_1, Array_2 As String  '■ 1列/2列の文字列を格納する変数■
    Dim Array_S As String           '■ 1列+2列を繋げて格納する変数■
    ReDim R_Array(Row_max - 1)
   
    '---------------------------------------
    '■ 配列の中身を確認
    '---------------------------------------
    For Row_i = 1 To Row_max
        Array_1 = myArray(Row_i, 1)
        Array_2 = myArray(Row_i, 2)
        Array_S = Array_1 & Array_2
        Cells(Row_i, "N") = Array_S       '■ セルに転記する■
        R_Array(Row_i - 1) = Array_S    '■ 戻り値として配列に格納■
    Next
    '---------------------------------------
   
    Set myArray = Nothing
 
 End Function
'************************************************

【VBA】最終行の取得方法(関数有り/関数無し)

Option Explicit
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
 Sub main()
    Dim Fa As Long      '関数の引数1/戻り値1
    Dim Fb As Long      '関数の引数2/戻り値2
    Dim Fc As Long      '関数の引数3/戻り値3
    Fa = 0       'ゼロクリア
    Fb = 0       'ゼロクリア
    Fc = 0       'ゼロクリア
   
    '*** *** *** *** *** *** *** *** *** ***
    '■ 最終行の取得方法【関数有り】
    '*** *** *** *** *** *** *** *** *** ***
      Call Func_02(Fa, Fb, Fc)   '関数呼び出し
      Cells(1, "K") = Fa           '戻り値1を指定
      Cells(2, "K") = Fb           '戻り値2を指定
      Cells(3, "K") = Fc           '戻り値3を指定
    '*** *** *** *** *** *** *** *** *** ***

    '--- --- --- --- --- --- --- --- --- ---
    '□ 最終行の取得方法【関数無し】
    '--- --- --- --- --- --- --- --- --- ---
      Dim Etc_Row As Long     '不要な行数用変数
      Dim Last_Row As Long    '最終行数用変数
    
      Etc_Row = 1               '不要な行数の初期値
      Last_Row = 0              '最終行数の変数をゼロクリア
    
      Last_Row = Cells(1, "A").End(xlDown).Row       '最終行の数を取得
      Last_Row = Last_Row - Etc_Row                   '最終行数から不要な行数をマイナス
    
      Cells(1, "G") = Last_Row                            '結果を反映
      Cells(2, "G") = Etc_Row                             '結果を反映
      Cells(3, "G") = Cells(1, "A").End(xlDown).Row   '結果を反映
    '--- --- --- --- --- --- --- --- --- ---
 
 End Sub
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼

'************************************************
 Function Func_02(Ra As Long, Rb As Long, Rc As Long)
   
    Dim Result_01 As Long    '戻り値用変数1
    Dim Result_02 As Long    '戻り値用変数2
    Dim Result_03 As Long    '戻り値用変数3
    Result_01 = Ra       '引数1を格納
    Result_02 = Rb       '引数2を格納
    Result_03 = Rc       '引数3を格納
   
    '--- --- --- --- --- --- --- --- --- ---
    Dim i As Long                   'ループカウンター用変数
    i = 2                             'ループ開始行を設定
    '--- --- --- --- --- --- --- --- --- ---
   
    '--- --- --- --- --- --- --- --- --- ---
    Do While Cells(i, "A") <> ""      '空欄になるまでループ
        i = i + 1                        'ループカウントアップ
        Result_01 = Result_01 + 1    '行数を加算
    Loop
    '--- --- --- --- --- --- --- --- --- ---

    Result_02 = i - Result_01
    Result_03 = i
   
    '--- --- --- --- --- --- --- --- --- ---
    '□ 戻り値が複数ある場合の書き方
    '--- --- --- --- --- --- --- --- --- ---
    Ra = Result_01    '戻り値を格納1
    Rb = Result_02    '戻り値を格納2
    Rc = Result_03    '戻り値を格納3
    '--- --- --- --- --- --- --- --- --- ---
 
 End Function
'************************************************

【VBA】簡単なエクセルマクロでの関数の記述例

※以下のような記述で関数の呼び出しと戻り値の利用が可能となる

=== === === === ===【以下は関数の記述例】=== === === === ===
Option Explicit
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
 Sub main()

    Dim Fa As Long
    Dim Fb As Long
    Dim Fc As Long

    Fa = 0

    Fb = 0
    Fc = 0

    '--- --- --- --- --- --- --- ---

    '□ 値をセット
    '--- --- --- --- --- --- --- ---
     Fa = 2
     Fb = 3
     Fc = 10
    '--- --- --- --- --- --- --- ---

    '*** *** *** *** *** *** *** *** *** ***
    '■ 関数の結果をセルに反映
    '*** *** *** *** *** *** *** *** *** ***
     Cells(1, "A") = Func_01(Fa, Fb, Fc)
    '*** *** *** *** *** *** *** *** *** ***

 End Sub
'▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼

'************************************************
 Function Func_01(Ra As Long, Rb As Long, Rc As Long)

    Dim Result_01 As Long

    MsgBox Ra

    MsgBox Rb
    MsgBox Rc

    '--- --- --- --- --- --- --- ---

    '□ 引数を使って計算
    '--- --- --- --- --- --- --- ---
     Result_01 = Ra + Rb + Rc
    '--- --- --- --- --- --- --- ---

    '*** *** *** *** *** *** ***
    '■ 結果を戻り値とする
    '*** *** *** *** *** *** ***
     Func_01 = Result_01
    '*** *** *** *** *** *** ***

 End Function
'************************************************

【LPIC-3 Specialty LPI-304 合格】

【報告】
 ・2016-09-30(金)
LPIC-3 Specialty LPI-304 Virtualization & High Availability
認定されました!

【得点】
 ・640点
 
【感想】
 ・黒本の問題と類似している問題が多い為、回答に迷わずクリア(余裕)

【その他】
 ・次の試験を模索中・・・


【試験に役立つアドバイス】
 ・問題は黒本、知識は仮想化関連の書籍を一冊熟読を推奨☆

【Linux】サーバーの状態確認(6)

疎通確認
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
# ping 192.168.0.10
 Pinging 192.168.1.10 with 32 bytes of data:        

 Reply from 192.168.1.10: bytes=32 time<10ms TTL=128
 Reply from 192.168.1.10: bytes=32 time=20ms TTL=128
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

経路情報を表示する
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
# traceroute 192.168.1.1
traceroute to itpro.nikkeibp.co.jp (202.214.174.88), 30 hops max, 38 byte packets
 1  192.168.1.1 (192.168.1.1)  0.386 ms  0.363 ms  0.322 ms
 2  218.xxx.xxx.xxx (218.xxx.xxx.xxx)  3.426 ms  4.137 ms  5.710 ms
 3  218.xxx.xxx.xxx (218.xxx.xxx.xxx)  7.711 ms  3.820 ms  3.123 ms
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

DNSサーバーへ問合せ(名前解決テスト)
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
# nslookup 192.168.0.1
サーバー:  xxxxx.example.com
Address:  192.168.0.11

名前:    XXX.example.com
Address:  192.168.0.1

--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

更新日付

05 2025/06 07
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

RECOMMEND

プロフィール

HN:
Account
HP:
性別:
非公開
職業:
--- NODATA ---
趣味:
--- NODATA ---
自己紹介:
◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

リンク

<<前のページ  | HOME |  次のページ>>
Copyright ©  -- LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例 --  All Rights Reserved
Design by CriCri / Photo by Melonenmann / powered by NINJA TOOLS / 忍者ブログ / [PR]