
初めて質問させて頂きます。
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ZIP解凍時のinflatingとは?
-
TIFFの圧縮形式について
-
windows media playerについて
-
DVD Shrink 圧縮スピードの大幅...
-
圧縮画像を元にもどすには?
-
鋼管と鋳鉄管の違い
-
ファイルではなくフォルダだけ...
-
zip圧縮してもほとんど圧縮され...
-
圧縮(zip形式)フォルダと普通...
-
Excelの画像に印をつける。
-
動画圧縮してもサイズが全く変...
-
wordで図の圧縮をするとトリミ...
-
圧縮後解凍すると〒いれた日本...
-
縮小した写真を元の大きさに戻...
-
圧縮式(ターボ)・吸収式冷凍...
-
CD-R/RWの700MBはどのくらい...
-
フォルダ名が突然青の文字にな...
-
圧縮率が低い
-
CD-Rに音楽を取り込みたい。m...
-
dvdをiPhoneに取り込んだ場合 2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
zip圧縮してもほとんど圧縮され...
-
ZIP解凍時のinflatingとは?
-
圧縮(zip形式)フォルダと普通...
-
鋼管と鋳鉄管の違い
-
Excelの画像に印をつける。
-
動画圧縮してもサイズが全く変...
-
圧縮したファイルが表示されない
-
windows 10で圧縮ファイルが圧...
-
写真の画像アップロードができ...
-
ファイルではなくフォルダだけ...
-
7-zIP で「圧縮して電子メール...
-
PDFをZIP圧縮するとデータがエ...
-
TIFFの圧縮形式について
-
7zでの圧縮レベルについて
-
+Lhacaを使ったパスワード付圧...
-
ファイルの圧縮について(.csv...
-
mp3を圧縮したいのですが。。。
-
windows media playerについて
-
圧縮フォルダの中身が消えてし...
-
画像をbase64より短くすること...
おすすめ情報