LoginSignup
1
0

More than 1 year has passed since last update.

【小ネタ】playwright-core + Codegen の結果を年月日・時間がついたファイル名で書き出す(Windowsの コマンドプロンプト・PowerShell)

Last updated at Posted at 2023-04-17

つい先日、以下の記事を書いた際に Mac でやっていた内容を、Windows にも対応させるためにやった内容のちょっとしたメモです。

●playwright-core で Codegen(PC にインストール済みのブラウザを利用 + 結果を年月日などがついたファイル名で書き出す等) - Qiita
 https://qiita.com/youtoy/items/9558b19cd3ddc90217ea

Mac でやっていた内容

前に書いた記事では、ローカルインストールした「playwright-core」で「Codegen」を使う話を書いていました(それと、PC にインストール済みのブラウザを利用する話を含めてました)。

その記事の中で、以下のように Codegen で生成された結果を、年月日・時間がついたファイル名で書き出すコマンドの話を含めていました。
※以下のコマンドは playwright-core のローカルインストールを行ったフォルダで実行するのと、PC には Chrome がインストール済みという前提

Macの場合
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code`date +%Y%m%d%H%M%S`.js

今回の内容

今回、これと同じことを Windows でやろうとした時、年月日・時間がついたファイル名を出力させる部分で修正が必要になりました。この記事は、その対応に関するちょっとしたメモ書きです。

実際のコマンド

最初に、Windows のコマンドプロンプト・PowerShell のそれぞれで、上記と同様のことを実現するための処理の例を書きます。

以下は、コマンドプロンプト用のものと、PowerShell用のものを、それぞれ書いています。

コマンドプロンプトの場合
set time2=%time: =0%
set str=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code%str%.js
PowerShellの場合
$str = Get-Date -Format yyyyMMddHHmmss
npx playwright-core codegen --channel chrome URL -o ./codegen/code$str.js

それぞれについて、以下で少しだけ補足します。

コマンドに関する補足

上記のコマンドプロンプト用のものと PowerShell用のものは、それぞれ複数行で 1セットになっています。

基本的な流れでは、年月日と時間を示す文字列を作成し、それを出力ファイルのファイル名に含めるというものです。そして、コマンドプロンプトと PowerShell とで年月日・時間を出力するコマンドが違っているという感じです。

2つの違いとして 1点、コマンドプロンプトのほうだけ set time2=%time: =0% という行があり、それはさらに補足を書いておきます。こちらは、今回の参照記事の 1つで触れられていた内容に関する対応です。 

具体的には、以下のように 2桁目が 0 で埋められるのではなく空白になって意図しない出力になるので、それを避けるための処理になります。
tiemの空白の対応1
tiemの空白の対応2

変数利用を減らしたバージョン

ちなみに、上記の 2通りの処理は、 str という変数を使わないで以下のように書くこともできます(見づらいですが...)。

コマンドプロンプトの場合
set time2=%time: =0%
npx playwright-core codegen --channel chrome 【URL】 -o ./codegen/code%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%.js
PowerShellの場合
npx playwright-core codegen --channel chrome URL -o ./codegen/code$(Get-Date -Format yyyyMMddHHmmss).js

参考

以下、今回の Windows対応をした際に、参考にしたページです。

1
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
1
0