LoginSignup
2
0

[PowerShell]大量のファイルを作成するスクリプト

Posted at

こんにちは!れーあです。
今回はほっっっとんど触ったことのない
PowerShellの勉強をしたくなったのでこの記事を投稿します。

ここでは大量のファイルを作成するスクリプトを作っていきます。

※ほぼ素人の書く記事のため粗さはご了承ください。

前提情報

スクリプト実行環境

PS C:\Users\user> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  4046

スクリプト内容

というわけで、まずは実際のスクリプトの内容を記載します。

処理内容:指定フォルダ配下にフォルダを大量(20個)作成する。
     作成するファイル中身にはそれぞれxの値を記載する。

CreateFiles.ps1
# フォルダパス指定:なければ作成
$folderPath = Read-Host "Please enter Folder Name"

if (-not (Test-Path -Path $folderPath)) {
	New-Item -Path $folderPath -ItemType Directory 
	Write-Host "$folderPath create Successed."
}

# xの初期値を設定
$x = 1

# xの値が20以上になるまで処理繰り返し
while ($x -le 20) {
	#ファイルパス生成
	$filePath = Join-Path -Path $folderPath -ChildPath "test_$x.txt"

	#xの値をファイルに書き込み
	New-Item -Path $folderPath -Name "test_$x.txt" -ItemType file -Value "$x"

	$x += 1
}

Write-Host "Scripts Finished"

使用コマンドレット説明

コマンドレット名 説明 備考
Read-Host "タイトル" コンソールに入力文字列を読み取る
if (-not 条件) {処理} 条件に一致しない場合処理を実施する
Test-Path -Path パスの要素があっているか確認する
New-Item -Path "フォルダパス" -ItemType Directory フォルダ作成 -ItemType Fileでファイル作成
while (条件) {処理} 条件に一致するまで処理を繰り返す
Join-Path -Path "親パス" -ChildPath "子パス" 親パスと子パスを結合して使用する 実際にそのパスが存在するかは考慮外
Write-Host "出力内容" 出力内容記載値をコンソールに表示

実際に動かしてみた

実際に動かしてみました。
ファイル作成先は「C:\Users\user\Desktop\tests」とします。

まず、実行前ではこのフォルダは存在しません。
image.png


実行すると作成フォルダを聞かれます。今回指定フォルダの「C:\Users\user\Desktop\tests」を入力してEnterキーを押下します。
image.png


一瞬ファイルが作成された画面表示後、PowerShell画面が終了します。
デスクトップに「tests」フォルダができています。
image.png


「tests」フォルダを開くと指定した20ファイルが作成されており、そのファイルの内容はスクリプトの「$x」の値が記載されています。
image.png

無事にスクリプトは動作したようです。

おわりに

というわけで今回はPowerShellでスクリプトを書いてみました。
取っかかりやすいものはあるかなと考えた結果、
ファイルを大量に作ってみようと思い立ったものの、
空ファイルを量産するのではなく中身付きがいいなと思ったので
今回のようなスクリプトになりました。

今回のものを改良すれば、例えばエラーメッセージが発生した際にエラーメッセージ内容別でファイルを作成したり、サーバ別に出力メッセージをテキスト化したりすることに使用できるかなと考えています。

では、今回はこのあたりで。

参考

今回参考はMicrosoft公式のコマンドリファレンスを参照しました。

・If文 - learn.microsoft.com
・while文 - learn.microsoft.com

・Test-Path - learn.microsoft.com
・New-Item - learn.microsoft.com
・Join-Path - learn.microsoft.com

・Read-Host - learn.microsoft.com
・Write-Host - learn.microsoft.com

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0