
初めて質問させて頂きます。
PowerShellのスクリプト作成についての質問です。
"C:\test"
・20161101
・20161201
・20170101
・20170201
・20170301
"C:\test"配下に上記の様なフォルダが有ります。
この中から一番新しい「20170301」フォルダ以外の全てのフォルダをzip形式で圧縮するスクリプトをPowerShellで作成したいのですが、
調べても中々うまくいきません。(タイムスタンプはフォルダ名の通りです。)
圧縮後のzipフォルダは圧縮前と同じく"C:\test"配下に出力したいです。
起動はタスクスケジューラを利用し別に作成したWindowsコマンドで作成したバッチバックアップバッチ起動後そのバッチから呼び出したいと思っております。
・zip圧縮後圧縮元を削除したい
・すべてをzip圧縮ではなく一番新しいフォルダ以外を圧縮する。
等がつまずいているポイントです。
良いスクリプトを教えて頂けませんでしょうか?
ご教示お願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
すでに書いてあるコードとのつながりがわからないので適宜書き直してください。
インデント部分は全角スペースで書いてありますのでコピペ時はご注意を。
zip 圧縮で使用している Compress-Archive コマンドレットは PowerShell v5 で追加された機能らしいので、Windows 10 と Windows Server 2016 意外の環境で実行する場合は .NET Framework 4.5 以上と Windows Management Framework 5.0 のインストールが必要です。
金曜なので早く帰りたく、あまりデバッグしておりません。
function Compress-OldItems
{
param
(
[Parameter(Mandatory)]
[string]$Path,
)
$oldItems = Get-ChildItem $Path -Directory | Sort-Object Name -Descending | Select-Object -Last ((Get-ChildItem $Path -Directory).Length - 1)
foreach ($item in $oldItems)
{
Compress-Archive -Path $item.FullName -DestinationPath "$($item.FullName).zip" -Force
Remove-Item -Path $item.FullName -Force -Recurse
}
}
Compress-OldItems E:\hoge などと呼び出してみてください。
引数は対象となるフォルダーのフルパスです。
Get-ChildItem $Path -Directory
対象フォルダーにあるフォルダーの一覧を取得しています。
Sort-Object Name -Descending
フォルダーの一覧をフォルダー名で降順にソートしています。
Name の代わりに CreationTime なら作成日時、LastWriteTime なら最終更新日時でソートできますね。
Select-Object -Last ((Get-ChildItem $Path -Directory).Length - 1)
ソート済みの一覧から指定した数だけ要素を取り出す -Last という引数があります。
通常は 「-Last 1」 とかして最後の一つだけを引き出したりするようです。
今回は Get-ChildItem で取得した全フォルダーの数から 1 を引いた数だけ取り出すようにしています。
こいつらを foreach でぐるぐるまわし、フォルダーひとつずつを zip 圧縮し、オリジナルを削除しています。
遅くなってしまいました。
ソースコードも書いて頂きありがとうございます。
zip.ps1
function Compress-OldItems C:test
{
param
(
[Parameter(Mandatory)]
[string]$Path,
以下略
コピペさせて頂きつつ上記の様なスクリプトを作成しましたがパスがうまく指定できないです。
提案して頂いたのに不甲斐なく申し訳ないです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Google Drive USB内の圧縮フォルダが開けません。教えて下さい! 1 2022/07/26 18:44
- 画像編集・動画編集・音楽編集 画像の一括圧縮 1 2022/12/02 21:56
- ノートパソコン パソコンでmp4の動画ファイルを10個くらい(合計20GB)をフォルダに入れて、容量を軽くしてしまお 2 2023/02/06 02:08
- PDF PDFファイルの圧縮 1 2022/10/04 13:48
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- Android(アンドロイド) androidでzip圧縮してから転送できるファイラー 3 2022/12/11 10:22
- その他(コンピューター・テクノロジー) 圧縮ファイル 解凍すると中身が消える? 3 2022/05/18 15:21
- Windows 10 見慣れないデスクトップがある。 1 2023/08/12 09:15
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
zip圧縮してもほとんど圧縮され...
-
圧縮したファイルが表示されない
-
圧縮(zip形式)フォルダと普通...
-
ZIP解凍時のinflatingとは?
-
画像のファイルを圧縮するのは...
-
PCのGmailで写真圧縮なしで送信...
-
写真の画像アップロードができ...
-
パソコンでmp4の動画ファイルを...
-
鋼管と鋳鉄管の違い
-
何とか500KBまで容量を圧縮した...
-
7zでの圧縮レベルについて
-
両面のDVDを片面のDVDにコピー
-
ファイル名の色が青くなるのはなぜ
-
Windows10でフォルダーの圧縮に...
-
動画圧縮してもサイズが全く変...
-
TIFFの圧縮形式について
-
CD-R/RWの700MBはどのくらい...
-
部分的に圧縮されたフォルダを...
-
20℃、圧力3MPa、体積100Lの窒素...
-
windows 10で圧縮ファイルが圧...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
zip圧縮してもほとんど圧縮され...
-
ZIP解凍時のinflatingとは?
-
鋼管と鋳鉄管の違い
-
圧縮したファイルが表示されない
-
圧縮(zip形式)フォルダと普通...
-
Excelの画像に印をつける。
-
動画圧縮してもサイズが全く変...
-
windows 10で圧縮ファイルが圧...
-
ファイルではなくフォルダだけ...
-
TIFFの圧縮形式について
-
圧縮画像を元にもどすには?
-
写真の画像アップロードができ...
-
PDFをZIP圧縮するとデータがエ...
-
右クリック>送る>圧縮・・・...
-
7zでの圧縮レベルについて
-
圧縮フォルダの中身が消えてし...
-
解凍するとサイズが減る圧縮フ...
-
ファイルの圧縮について(.csv...
-
PCのGmailで写真圧縮なしで送信...
-
+Lhacaを使ったパスワード付圧...
おすすめ情報