忍者ブログ

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

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

   

【BAT】PING疎通バッチ

【使い方】
 対象のIPアドレス(又はホスト名)を「IP.txt」に列挙し、
 「PING_疎通確認.bat」にドラッグ&ドロップして実行する。
  ⇒ 実行結果は「PING_IP.txt」に出力される。

※テキストファイル名⇒「<任意>.txt」
%COMPUTERNAME%
localhost
127.0.0.1
8.8.8.8
1.1.1.1
※バッチファイル名⇒「PING_疎通確認.bat
@echo off
://開始処理//
type nul > PING_IP.txt
echo. >> PING_IP.txt
echo ****************************** >> PING_IP.txt
echo 【年月日/時刻】%date:~0,10% %time:~0,5% >> PING_IP.txt
REM # echo ------------------------------ >> PING_IP.txt
REM # date /t >> PING_IP.txt 2>&1
REM # echo ------------------------------ >> PING_IP.txt
REM # time /t >> PING_IP.txt 2>&1
echo ****************************** >> PING_IP.txt
echo ------------------------------
echo *** START ***
echo ------------------------------
:*** *** *** *** ***
:*** メイン処理  ***
:*** *** *** *** ***
://読込処理//
for /f %%a in (%1) do (
 Call :xxxPINGxxx %%a
)
://終了処理//
echo.
echo ------------------------------
echo *** END ***
echo ------------------------------
pause
Exit
:*** *** *** *** ***
:*** PING実行処理***
:*** *** *** *** ***
:xxxPINGxxx
@echo on
ping -n 1 %*
@echo off
echo.
echo. >> PING_IP.txt
echo ============================== >> PING_IP.txt
echo.
echo ■疎通対象のIPアドレス■ %* >> PING_IP.txt
echo (コマンド)ping -n 3 %* >> PING_IP.txt 2>&1
echo.
echo ============================== >> PING_IP.txt
ping -n 3 %* >> PING_IP.txt
echo. >> PING_IP.txt
echo ++++++++++++++++++++++++++++++ >> PING_IP.txt
echo. >> PING_IP.txt
Exit /b 0
PR

【BAT】環境変数の遅延展開

【環境変数の遅延展開】
 バッチファイルで変数の値が代入されるのは1行読み込んだタイミングとなる。
 この場合、if文やfor文では変数が扱いが難しくなってしまう。
 これを回避する為、変数の値が代入されるのを実行時のタイミングに変更する。

【書式】

 ① setlocal enabledelayedexpansion ←これを最初に記述
 ② 変数の囲みを「変数」⇒「変数」に変える

【例】

@echo off
setlocal enabledelayedexpansion
set A=0
if %A% == 0 (
    set A=1
    echo !A!
)

【BAT】Windows_作業用

【使い方】以下をコピーして、コマンドプロンプトに貼り付け実行する

@echo off

 :┏━━━━━━━━━━━━━━━━━━━
 :┃【フォルダを作って移動する】

 :┗━━━━━━━━━━━━━━━━━━━
mkdir %COMPUTERNAME%
cd %COMPUTERNAME%

 :┏━━━━━━━━━━━━━━━━━━━

 :┃【サーバーの役割と機能】
 :┃(管理者として実行)
 :┗━━━━━━━━━━━━━━━━━━━
dism /Online /Get-Features > Features.txt

 :┏━━━━━━━━━━━━━━━━━━━

 :┃【ドライブ情報】
 :┗━━━━━━━━━━━━━━━━━━━
icacls c:\ > icacls.txt
icacls d:\ >> icacls.txt

 :┏━━━━━━━━━━━━━━━━━━━

 :┃【PowerShell起動】
 :┗━━━━━━━━━━━━━━━━━━━
powershell

 :┏━━━━━━━━━━━━━━━━━━━

 :┃【ドライブ情報】
 :┗━━━━━━━━━━━━━━━━━━━
Get-PSDrive > ${env:COMUPUTERNAME}_Drive.txt

 :┏━━━━━━━━━━━━━━━━━━━

 :┃【サーバーの役割と機能】
 :┗━━━━━━━━━━━━━━━━━━━
Get-WindowsFeature > ${env:COMPUTERNAME}_WindowsFeature.txt

 :┏━━━━━━━━━━━━━━━━━━━

 :┃【ディレクトリの内容】
 :┗━━━━━━━━━━━━━━━━━━━
dir -Directory -Recurse | Select FullName > ${env:COMPUTERNAME}_Dir.txt

 :┏━━━━━━━━━━━━━━━━━━━

 :┃【PowerShell終了】
 :┗━━━━━━━━━━━━━━━━━━━
exit

【BAT】Windowsの設定画面を表示する

【使い方】以下のバッチファイルを適当なフォルダに格納して実行する


「設定画面の表示.bat」 ← バッチファイル名


@echo off

::★★★設定画面の表示★★★
echo .
echo ===============
echo 【*S*T*A*R*T*】
echo ===============
echo .
timeout 1 >nul && color 1e
echo ┏━━━━━━━━━━━━━━━
echo ┃【システムのプロパティ】
echo ┗━━━━━━━━━━━━━━━
sysdm.cpl
echo ┏━━━━━━━━━━━━━━━
echo ┃【スクリーンセーバーの設定】
echo ┗━━━━━━━━━━━━━━━
control desk.cpl,screensaver,@screensaver
echo ┏━━━━━━━━━━━━━━━
echo ┃【ネットワーク接続】
echo ┗━━━━━━━━━━━━━━━
ncpa.cpl
echo ┏━━━━━━━━━━━━━━━
echo ┃【ファイアウォール】
echo ┗━━━━━━━━━━━━━━━
firewall.cpl
echo ┏━━━━━━━━━━━━━━━
echo ┃【UACの設定】
echo ┗━━━━━━━━━━━━━━━
UserAccountControlSettings
echo ┏━━━━━━━━━━━━━━━
echo ┃【ローカルユーザーとグループ】
echo ┗━━━━━━━━━━━━━━━
lusrmgr.msc
echo ┏━━━━━━━━━━━━━━━
echo ┃【ディスプレイ】
echo ┗━━━━━━━━━━━━━━━
desk.cpl

timeout 1 >nul && color 0f
echo .
echo ===============
echo 【**E**N**D**】
echo ===============
echo .
pause

【BAT】WindowsのOS情報取得ツール

【使い方】以下のバッチファイルを適当なフォルダに格納して実行する

「PC_情報取得バッチ.bat」 ← バッチファイル名

@echo off
::★★★PC情報取得バッチ★★★
::━━━━━━━━━━━━
setlocal
set YYYYMMDD=%DATE:/=%
set xxx=%COMPUTERNAME%
set OS_BIT=%PROCESSOR_ARCHITECTURE%
set x_FILE_000_x=%xxx%_%YYYYMMDD%_ALL.txt
set x_FILE_001_x=%xxx%_%YYYYMMDD%_OS_bit.txt
set x_FILE_002_x=%xxx%_%YYYYMMDD%_User.txt
set x_FILE_003_x=%xxx%_%YYYYMMDD%_Group.txt
set x_FILE_004_x=%xxx%_%YYYYMMDD%_wmic_qfe.txt
set x_FILE_005_x=%xxx%_%YYYYMMDD%_ipconfig.txt
set x_FILE_006_x=%xxx%_%YYYYMMDD%_firewall.txt
set x_FILE_007_x=%xxx%_%YYYYMMDD%_systeminfo.txt
set SOFT_FILE=%xxx%_%YYYYMMDD%_SOFT.csv
set TMP_FILE=%xxx%_tmp.txt
set x_FILE_ZIP_x=%xxx%_%YYYYMMDD%.zip
::━━━━━━━━━━━━
echo ▲▼▲▼▲▼ > %x_FILE_001_x%
echo OSビット情報 >> %x_FILE_001_x%
echo ... "x86" This PC is 32bit OS >> %x_FILE_001_x%
echo ... "AMD64" This PC is 64bit OS >> %x_FILE_001_x%
echo ▲▼▲▼▲▼ >> %x_FILE_001_x%
echo . >> %x_FILE_001_x%
echo [OS_BIT] %PROCESSOR_ARCHITECTURE% >> %x_FILE_001_x%
::━━━━━━━━━━━━
wmic useraccount where LocalAccount=TRUE > %x_FILE_002_x%
::━━━━━━━━━━━━
::wmic group where LocalAccount=TRUE > %x_FILE_003_x%
net localgroup > %x_FILE_003_x%
::━━━━━━━━━━━━
wmic qfe > %x_FILE_004_x%
::━━━━━━━━━━━━
echo ▲▼▲▼▲▼ > %x_FILE_005_x%
echo IPアドレス情報取得 >> %x_FILE_005_x%
echo ▲▼▲▼▲▼ >> %x_FILE_005_x%
echo . >> %x_FILE_005_x%
ipconfig /all >> %x_FILE_005_x%
::━━━━━━━━━━━━
echo ▲▼▲▼▲▼ > %x_FILE_006_x%
echo FW情報取得 >> %x_FILE_006_x%
echo ▲▼▲▼▲▼ >> %x_FILE_006_x%
echo . >> %x_FILE_006_x%
netsh advfirewall firewall show rule name=all verbose >> %x_FILE_006_x%
::━━━━━━━━━━━━
echo ▲▼▲▼▲▼ > %x_FILE_007_x%
echo systeminfo >> %x_FILE_007_x%
echo ▲▼▲▼▲▼ >> %x_FILE_007_x%
echo . >> %x_FILE_007_x%
systeminfo >> %x_FILE_007_x%
::━━━━━━━━━━━━
echo ▲▼▲▼▲▼ > %SOFT_FILE%
echo -----------------------------------------
echo ソフト一覧取得 >> %SOFT_FILE%
echo ▲▼▲▼▲▼ >> %SOFT_FILE%
echo . >> %SOFT_FILE%
if %OS_BIT% == x86 (
 powershell "Get-ChildItem -Path('HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') | %% { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher } | Sort-Object -Property Displayname | Export-Csv -Path $env:TMP_FILE -Encoding Default"
 if ERRORLEVEL 1 CALL :ERRMSG インストール一覧作成に失敗しました
 findstr /V "^,,$" %TMP_FILE% >> %SOFT_FILE%
 del /F /Q %TMP_FILE%
) else if %OS_BIT% == AMD64 (
 powershell "Get-ChildItem -Path('HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall','HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') | %% { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher } | Sort-Object -Property Displayname | Export-Csv -Path $env:TMP_FILE -Encoding Default"
 if ERRORLEVEL 1 CALL :ERRMSG インストール一覧作成に失敗しました
 findstr /V "^,,$" %TMP_FILE% >> %SOFT_FILE%
 del /F /Q %TMP_FILE%
) else (
 CALL :ERRMSG OSのビット判定が不明のため処理をスキップします
)
::━━━━━━━━━━━━
echo ▲▼▲▼▲▼
echo %xxx% の情報取得 ⇒ zip圧縮
echo 出力先: %x_FILE_ZIP_x%
echo ▲▼▲▼▲▼
pause
powershell "Compress-Archive -path %xxx%_* -DestinationPath $env:x_FILE_ZIP_x -Force"
if ERRORLEVEL 1 (
 CALL :ERRMSG ZIPファイルの作成に失敗しました
 goto ERREND
)
::━━━━━━━━━━━━
:: ★ファイル削除
del /F /Q %xxx%_*.txt
del /F /Q %xxx%_*.csv
::━━━━━━━━━━━━
:: ★正常終了
echo.
endlocal
exit /B 0
::━━━━━━━━━━━━
:: ★エラー処理
:ERRMSG
echo.
echo ERROR: %1
echo.
pause
exit /B 1

:ERREND
echo.
endlocal
exit /B 1

【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

【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


更新日付

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

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]