質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

受付中

【PowerShell】「フォルダ内ファイルの圧縮→フォルダ移動→最古ファイルの削除」を日次で実行するスクリプトの不備解消方法について

Aki69
Aki69

総合スコア1

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

1回答

-4評価

0クリップ

451閲覧

投稿2022/05/09 08:17

編集2022/05/11 11:31

タスクスケジューラから日次で実行し、以下一連の処理を自動で実行するPowerShellスクリプトを作成しました。
元となるファイルが1種類の場合は問題なく動作したように見えますが、2種類以上の場合に上手く動作しません。スクリプトを記載致しましたので、修正案をご教示いただけると助かります。

<処理概要>
①フォルダA内のcsvファイルをzipで圧縮する
C:\folderA\aaa.csv → C:\folderA\aaa.zip
②圧縮したファイルをフォルダBに移動
C:\folderA\aaa.zip → D:\folderB\aaa.zip
③フォルダA内の元ファイル(未圧縮のcsv)を削除する
C:\folderA\aaa.csv
④移動先(フォルダB)に圧縮ファイルが11個以上あればタイムスタンプが一番古いファイルを削除
(常に最新10世代のみファイルが保管されている状態とする)

<作成スクリプト>

//フォルダA内のファイル名(拡張子なし)を取得 $src = Get-ChildItem -Name C:\folderA $file = [System.IO.Path]::GetFileNameWithoutExtension("$src") //①、②の処理 Compress-Archive -Path C:\folderA\*.* -DestinationPath C:\folderB\$file //③の処理 Remove-Item C:\folderA\*.* //④の処理 $a = (Get-ChildItem C:\folderB | ? { ! $_.PsIsContainer }).Count if($a -gt 10){ Get-ChildItem C:\folderB | Sort-Object LastWriteTime -Descending | Select-Object -Skip 10 | foreach{Remove-Item $_.FullName} }

よろしくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

fiveHundred

2022/05/09 08:30

> どなたかサンプルスクリプトをいただけないでしょうか。 「コードを作ってほしい」は非推奨かつ低評価対象です。 https://teratail.com/help/avoid-asking スクリプトが欲しいだけなら、他を当たってください。
otn

2022/05/09 12:45 編集

それぞれの処理は、ググるだけでも方法が見つかるので、それらを組み合わせれば良いでしょう。 具体的な不明点が出てくれば改めて質問しましょう。
Aki69

2022/05/10 10:38 編集

規約を確認しておらず失礼致しました。 質問内容を修正致しましたので、ご回答いただけますと幸いです。
otn

2022/05/11 02:31

> 2種類以上の場合に上手く動作しません。 どうなるのでしょうか?「上手く動作しません。」では情報量ゼロです。 例:「~~という結果を期待したが、~~という結果になった」 あと、「種類」とは?

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。