投稿

9月, 2022の投稿を表示しています

【PowerShell】複数ファイルを結合コピーする方法

PowerShellで複数ファイルを結合コピーする方法 ①:2つのファイルを結合コピー ✏スクリプト $inputFld="C:\TEMP"; $outputFile="C:\TEMP\output.txt"; Get-Content $inputFld'\input1.txt', $inputFld'\input2.txt' | Out-File $outputFile ☝スクリプトの説明 ♦1行目: $inputFld="C:\TEMP"; 結合コピーしたい入力ファイルが格納されているフォルダを指定。 ♦2行目: $outputFile="C:\TEMP\output.txt"; 出力ファイルを指定。 ♦3行目: Get-Content $inputFld'\input1.txt', $inputFld'\input2.txt' | Out-File $outputFile パイプライン( | )で処理を結合。「Get-Content $inputFld'\input1.txt', $inputFld'\input2.txt'」でinput1.txtとinput2.txtのファイル内容を取り込み。その読み込んだ内容を「Out-File $outputFile」で出力。 ②:ワイルドカードを用いてファイルを結合コピー ✏スクリプト $inputFile="C:\TEMP\*.txt"; $outputFile="C:\OUT\output.txt"; Get-Content $inputFile | Out-File $outputFile ☝スクリプトの説明 ♦1行目: $TargetPath="C:\TEMP\*.txt"; 読み込む対象のファイル(C:¥TEMP¥*.txt)を指定。 ♦2行目: $outputFile="C:\OUT\output.txt"; 出力ファイルを指定。

【PowerShell】PCにインストールされているアプリケーションの情報を取得する

PowerShellでPCにインストールされているアプリケーションの情報を取得する方法。 コンピュータにインストールされているアプリケーションの情報を取得 ✏スクリプト $PC_Name="コンピュータ名"; Get-WmiObject Win32_Product -ComputerName $PC_Name ☝スクリプトの説明 ♦1行目: $PC_Name="コンピュータ名"; 対象のコンピュータ名を指定。 ♦2行目: Get-WmiObject Win32_Product -ComputerName $PC_Name 指定したコンピュータにインストールされているアプリケーション情報を取得。

【PowerShell】ファイル内の文字列検索(OR検索, AND検索, NOT検索)

PowerShellでテキスト検索する方法(OR検索, AND検索, NOT検索)。 検索①:ファイル内の文字列検索(OR検索) ✏スクリプト $TargetPath="C:\TEMP\*.txt"; Select-String -Path $TargetPath -Pattern "hoge","age" -Encoding default ☝スクリプトの説明 ♦1行目: $TargetPath="C:\TEMP\*.txt"; 検索対象のファイルパス(C:¥TEMP¥*.txt)を指定。 ♦2行目: Select-String -Path $TargetPath -Pattern "hoge","age" -Encoding default 検索対象のファイル(C:¥TEMP¥*.txt)のうち、文字列 "hoge" もしくは "age" を含むファイルを検索。「-Encoding default」は日本語環境であれば「Shift-JIS」を読み込む。「UTF8」であれば「-Encoding UTF8」。 検索②:ファイル内の文字列検索(AND検索) ✏スクリプト $TargetPath="C:\TEMP\*.txt"; Select-String -Path $TargetPath -Pattern "hoge" -Encoding default | Select-String -Pattern "age" ☝スクリプトの説明 ♦1行目: $TargetPath="C:\TEMP\*.txt"; 検索対象のファイルパス(C:¥TEMP¥*.txt)を指定。 ♦2行目: Select-String -Path $TargetPath -Pattern "hoge" -Encoding default | Select-String -Pattern "age" パイプラインで結合。

【PowerShell】テキストファイル内の文字列を検索する方法

Windows環境で便利なテキストエディタが使えないときに、 PowerShellでテキスト検索する方法。 検索①:指定したフォルダ(サブフォルダを含まない)内のテキストを検索 ✏スクリプト $TargetPath="C:\TEMP\*.txt"; $ScanPhrase="hoge"; Select-String -Path $TargetPath -Pattern $ScanPhrase -Encoding default ☝スクリプトの説明 ♦1行目: $TargetPath="C:\TEMP\*.txt"; 検索対象のファイルパス(C:\TEMP\*.txt)を指定。 ♦2行目: $ScanPhrase="hoge"; 検索する文字列を指定。ここでは文字列 "hoge" を検索。 ♦3行目: Select-String -Path $TargetPath -Pattern $ScanPhrase -Encoding default 検索対象のファイル(C:\TEMP\*.txt)のうち、文字列 "hoge"を含むファイルを検索。 「-Encoding default」は日本語環境であれば「Shift-JIS」を読み込む。「UTF8」であれば「-Encoding UTF8」 検索②:サブフォルダを含む特定フォルダ内のテキスト検索 ✏ スクリプト $TargetPath="C:\TEMP"; $TargetFile="*.txt"; $ScanPhrase="hoge"; dir $TargetPath -Recurse -Filter $TargetFile | Select-String -Pattern $ScanPhrase -Encoding default ☝スクリプトの説明 ♦1行目: $TargetPath="C:\TEMP"; 検索対象のフォルダ(C:\TEMP)と、検索対象のファイル(*.txt)を指定。 ♦2行目: $Tar

【PowerShell】ファイルを件数ごとに分割する

 大容量ファイルをWindows PCで分割する一つの方法 先日、サイズの大きなcsvファイルをPC上で処理する必要があったのですが、あまりにもサイズが大きかったため、急遽、分割することにしました。 このときはWindows PC で作業していたため、Powershellで対応しました。 以下のスクリプトでは、$num に設定した件数で、ファイル分割しています。 出力ファイルのファイル名の末尾に連番が振られます。 ✏スクリプト $inFile='入力ファイルのパス'; $outFile='出力ファイルのパス'; $num=10000; $i=0;Get-Content $inFile -ReadCount $num | % {$_ | Out-File $outFile"_$i.csv" -Encoding UTF8 -Append; $i++} ☝スクリプトの説明 ♦1行目: $inFile='入力ファイルのパス'; 分割する対象ファイルを指定。 ♦2行目: $outFile='出力ファイルのパス'; 出力ファイルのパスを指定。 ♦3行目: $num=10000; 分割する件数を指定。 ♦4行目: $i=0;Get-Content $inFile -ReadCount $num | % {$_ | Out-File $outFile"_$i.csv" -Encoding UTF8 -Append; $i++} ファイルを10,000(=$num)件ごとに分割。出力ファイルの末尾は0から連番が振られる。

よく使うRobocopy

日常業務で使用するRobocopyは、ほぼこれで足りる。 特定のファイルをコピーする robocopy [コピー元フォルダ名] [コピー先フォルダ名] [ファイル名] 空のフォルダを含むサブフォルダをコピーする robocopy [コピー元フォルダ名] [コピー先フォルダ名] /s 送り元にあるファイルを宛先フォルダに移動する robocopy [コピー元フォルダ名] [コピー先フォルダ名] /mov 送り元にあるファイルとフォルダを宛先フォルダに移動する robocopy [コピー元フォルダ名] [コピー先フォルダ名] /move