VB.NET:既存プロジェクトに対して一括でgit環境を作成

公開:2026.05.13(水) 14:22

VB.NETの既存プロジェクトに対して一括でgit環境を作成する方法

VB.NETでgit管理する場合で既存のプロジェクトが複数存在するすると、それぞれのフォルダに.gitignoreをコピーして git init、git add、git commit を実行して・・・というのが面倒なのでPowerShellでスクリプトを作成した。(ChatGPTに手伝ってもらった)

・ $RootPathにプロジェクトルートを指定。
ここで指定したフォルダのサブフォルダに.vbprojファイルがあればgit管理対象とする。

・ $GitignoreSourceSourceにコピー元".gitignore"ファイルのフルパスを指定
ここで指定したファイルをプロジェクトフォルダにコピーする。
・ $CommitMessageにコミット時のメッセージを指定。
・ $LogFileに処理結果を記録するログファイル(csv形式)のフルパスを指定

あとば以下のファイルを gitinit.ps1 といったファイル名で保存、
このファイルを右クリックで "PowerShellで実行" にて実行すればよい。

# ==========================================
# 設定エリア(ここを変更してください)
# ==========================================
Param(
    [string]$RootPath        = "C:\Your\Projects\Path",           # 探索ルート
    [string]$GitignoreSource = "C:\Common\Path\.gitignore",       # コピー元の .gitignore
    [string]$CommitMessage   = "Initial commit (Automated)",      # コミットメッセージ
    [string]$LogFile         = "C:\Your\Path\git_init_log.csv"    # ログ出力先
)

# ==========================================
# 処理開始
# ==========================================

# ログ用のヘッダーを作成(初回のみ)
"Date,Status,Path,Message" | Out-File -FilePath $LogFile -Encoding utf8

# .vbproj が含まれるフォルダを再帰的に取得
$projectFolders = Get-ChildItem -Path $RootPath -Filter "*.vbproj" -Recurse | 
                  Select-Object -ExpandProperty DirectoryName -Unique

Write-Host "--- Git Initialization Task Start ---" -ForegroundColor Cyan

foreach ($folder in $projectFolders) {
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    
    # 1. すでに .git フォルダがある場合はスキップ
    if (Test-Path "$folder\.git") {
        $msg = "Already initialized"
        Write-Host "Skipping: $folder ($msg)" -ForegroundColor Yellow
        "$timestamp,Skipped,$folder,$msg" | Out-File -FilePath $LogFile -Append -Encoding utf8
        continue
    }

    try {
        Write-Host "Processing: $folder" -ForegroundColor Cyan
        Push-Location $folder

        # 2. .gitignore をコピー
        Copy-Item -Path $GitignoreSource -Destination "$folder\.gitignore" -Force

        # 3. Git コマンドの実行
        git init -q
        git add .
        git commit -m $CommitMessage -q
        
        # 成功ログ
        "$timestamp,Success,$folder,Initialized with git" | Out-File -FilePath $LogFile -Append -Encoding utf8
        Write-Host "Success!" -ForegroundColor Green
    }
    catch {
        # エラーログ
        $err = $_.Exception.Message.Replace(",", " ") # CSV崩れ防止
        "$timestamp,Error,$folder,$err" | Out-File -FilePath $LogFile -Append -Encoding utf8
        Write-Error "Failed to process $folder"
    }
    finally {
        Pop-Location
    }
}

Write-Host "--- All Tasks Completed. Log: $LogFile ---" -ForegroundColor Cyan

Pixel:強制再起動方法

公開:2026.05.12(火) 07:02

Pixel強制再起動方法

Pixel 8 Proの画面が真っ暗なままになる
サイドのボタンを押すと何らか反応しているみたいなのでフリーズ、ではないっぽい。

強制的に再起動させる方法は?

→ 電源ボタンと音量大ボタンを同時に15秒以上押す。

これで再起動、復旧できた。


PHP 学習:プロになるためのPHPプログラミング入門 サンプル環境構築

公開:2026.05.11(月) 09:46

プロになるためのPHPプログラミング入門 サンプル環境構築

書籍:プロになるためのPHPプログラミング入門
(ISBN:978-4-7741-4972-1)

この書籍のサンプルプログラムを動かすためのコンテナを作成する。
本来であれば新たに専用Dockerコンテナを作成するのが良しと思うが、
今回は「Docker:WSL+Docker+PHP+MySQL+phpMyAdmin環境の作成」で作成したコンテナに環境を作ろうと思う。

DocumentRootは/var/www/html(WSLの./www/html/にマウント)としているが、
compose.yamlに「Apache:エイリアスの設定」の設定を追加し、 サンプルプログラム(prophp_sample)を localhost/prophp_sample で公開するように対応する。

現在の環境
現在の環境は、WSLの "~/docker/php"フォルダ にcompose.yamlなどDocker関連のファイル および
"~/docker/php/www/html"フォルダ にDocumentRoot をマウントしている。

サンプルプログラムの環境
本付属サンプル "prophp_sample.zip" は解凍したのち WSLの "~/docker/php/prophp_sample" フォルダに配置した。
これをコンテナの "/var/www/prophp_sample" フォルダへマウントする。

compose.yaml
services:
    php:
      image: php:8.3-apache
    volumes:
      - ./www/html:/var/www/html
+     - ./prophp_sample:/var/www/prophp_sample
      - ./php.ini-debug:/usr/local/etc/php/php.ini
 :

Apacheのエイリアス設定を行うための prophp_sample.conf ファイルをWSL上に作成する。
prophp_sample.conf
Alias /prophp_sample /var/www/prophp_sample/www

<Directory /var/www/prophp_sample/www>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

prophp_sample.confをコンテナにマウントし、Apacheの設定有効化と起動をcompose.yamlに追加する。
compose.yaml
  services:
    php:
      image: php:8.3-apache
      volumes:
        - ./www/html:/var/www/html
        - ./prophp_sample:/var/www/prophp_sample
        - ./php.ini-debug:/usr/local/etc/php/php.ini
+       - ./prophp_sample.conf:/etc/apache2/conf-available/prophp_sample.conf
      ports:
        - "8080:80"
+     command: >
+       sh -c "a2enconf prophp_sample && apache2-foreground"
 :

あとは "docker copmose up -d" でコンテナを起動、 試しに "~/docker/php/prophp_sample/phpinfo.php" ファイルを作成、"localhost:8080/prophp_sample/phpinfo.php" でアクセスできればOK

参考(全体ソース)

compose.yaml
services:
  php:
    image: php:8.3-apache
    volumes:
      - ./www/html:/var/www/html
      - ./prophp_sample:/var/www/prophp_sample
      - ./php.ini-debug:/usr/local/etc/php/php.ini
      - ./prophp_sample.conf:/etc/apache2/conf-available/prophp_sample.conf
    ports:
      - "8080:80"
    command: >
      sh -c "a2enconf prophp_sample && apache2-foreground"

  db:
    image: mysql:8.0
    volumes:
      - ./mysql:/var/lib/mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
  
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8081:80"
    environment:
      PMA_HOST: db

"PHP 学習"

その他の記事