PowerShell初心者です。この度、PowerShellを使ってテキスト編集をすることになりましたが、どこから手をつけたらいいのかいまいち分かりません。
編集しようと思っているのは以下についてですが、どのようにコーディングしたら動かせるのかご教示いただけませんでしょうか。
よろしくお願いいたします。
(編集したいこと)
①編集前ファイル(lst01.txt)を、10バイトずつ改行コードを投入し、編集中間ファイル(lst02.txt)へ出力します。
②編集中間ファイル(lst02.txt)のデータから、abcdefg(先頭7バイト)を含む行のデータを削除し、編集後ファイル(lst03.txt)へ出力します。
※abcdefgxxxのうち、abcdefgは固定、xxxは連番です。001のみの時もあれば、001~005の時、001~007までの時とかもあります。
※abcdefgxxx以外のデータ件数は、その時によって異なります。
(実行例)
◎編集前ファイル lst01.txt
abcdefg001111111111122222222223333333333abcdefg0024444444444555555555566666666667777777777
◎編集中間ファイル lst02.txt
abcdefg001
1111111111
2222222222
3333333333
abcdefg002
4444444444
5555555555
6666666666
7777777777
◎編集後ファイル lst03.txt
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
No.2
- 回答日時:
> 作ってみたい内容は、以下のような感じですが、
> このような変換もできますでしょうか。
もちろん可能ですが、そのまま回答しては質問者様のためにもなりませんので要点だけ回答します。
システム日付8桁の文字列の求め方は
(Get-Date).ToString("yyyymmdd")
文字列の連結は ’+’で可能です。
例:"Hello " + "World" → "Hello World"
あとはNo.1で回答した内容の動作を理解すれば作れます。
がんばってみて下さい。
siffon9様
補足質問の回答もして頂き、ありがとうございました。
回答そのものではなく、考え方をご教授いただけただけで十分ありがたいです。
本日、siffon9様から教わった考え方を参考にさせて頂き、
他のパターンでも日付取得をしてみたりして、無事に動作しました。
他にもエラーチェック等もかけたいので、
明日以降も作成してみます。
ありがとうございました。
No.1ベストアンサー
- 回答日時:
こんな感じでいかがですか?
※lst02.txt isl03.txtには追加モードで書き込んでいるので、元からこのファイルが存在する場合には予め削除することが必要です。
$file1 = "c:\powershell\lst01.txt"
$file2 = "c:\powershell\lst02.txt"
$file3 = "c:\powershell\lst03.txt"
$prefix = "abcdefg"
$buf = Get-Content $file1
for ($i = 0; $i -lt $buf.Length; $i += 10){
$line = $buf.Substring($i,10)
Out-File $file2 -Append -InputObject $line
}
$ary = @(Get-Content $file2)
foreach($line in $ary){
if($line.SubString(0,7) -ne $prefix){
Out-File $file3 -Append -InputObject $line
}
}
siffon9様
この度はご多忙のところ、お教え頂きありがとうございました。
回答していただいた内容で問題なく動作しました。
この後もファイルレイアウトで要望事項が増えましたが、
教えたいただいた内容を応用すればできそうですので、
参考にさせて頂きます。
また、lst02.txtやlst03.txtも処理終了後に削除するように
別バッチを動かして対応いたします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.txtではなく.logの方が良いの...
-
バッチ処理でファイルの中身を...
-
多数のサブディレクトリ内のフ...
-
拡張子を元に戻す
-
VBAでワークシートを引数として...
-
unlinkで削除されないのは?
-
バッチ処理でリスト行表示空白...
-
外部exeに対しての引数受け渡し
-
Windowsのバッチファイルを利用...
-
COPYコマンドで結合すると余計...
-
コマンドプロンプトで指定した...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
-
VBScriptでファイルのコピーが...
-
バッチファイル 複数ファイル...
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
C言語、ファイルの存在チェック...
-
ファイル内容の修正、行削除に...
-
accessでSQL文を使ってcsvファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
拡張子を元に戻す
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
バッチファイル 複数ファイル...
-
バッチファイルで文字列削除に...
-
renameコマンドについて
-
forfilesで検索したファイルを...
-
accessでSQL文を使ってcsvファ...
-
バッチファイルからVBAに引数を...
-
psqlでエラーログをとりたい
-
UWSCでテキストファイルを開い...
-
cshでファイルサイズ取得
-
MS-DOSのバッチファイルの中で...
-
コマンドプロンプトで指定した...
-
テキストファイルのタブをカン...
おすすめ情報
siffon9様
丁寧な回答をして頂き、ありがとうございます。
回答していただいた内容で、問題なく動きそうです。
もし可能でしたら追加でご質問させて頂きたいのですが、
lst03.txtでできたファイルからさらに編集をしてlst04.txtを作ってみたいと思っています。
作ってみたい内容は、以下のような感じですが、
このような変換もできますでしょうか。
(lst04.txtにできる結果)
半角スペース(4桁分挿入)・111(lst03の3バイト目から5バイト目まで)・AAA(3桁分挿入)・半角スペース(2桁分挿入)・20161128(システム日付8桁) … 全20バイトです
△△△△111AAA△△20161128
△△△△222AAA△△20161128
:
:
:
△△△△777AAA△△20161128