質問編集履歴
2
件名修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【PowerShell】「フォルダ内ファイルの圧縮→フォルダ移動→最古ファイルの削除」を日次で実行するスクリプト
|
1
|
+
【PowerShell】「フォルダ内ファイルの圧縮→フォルダ移動→最古ファイルの削除」を日次で実行するスクリプトの不備解消方法について
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
タスクスケジューラから日次で実行し、以下一連の処理を自動で実行するPowerShellスクリプトを作成しました。
|
2
|
-
元となるファイルが1種類の場合は問題なく動作したように見えますが、2種類以上の場合に上手く動作しません。修正案をご教示いただけると助かります。
|
2
|
+
元となるファイルが1種類の場合は問題なく動作したように見えますが、2種類以上の場合に上手く動作しません。スクリプトを記載致しましたので、修正案をご教示いただけると助かります。
|
3
3
|
|
4
4
|
**<処理概要>**
|
5
5
|
①フォルダA内のcsvファイルをzipで圧縮する
|
1
スクリプトの追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【PS
|
1
|
+
【PowerShell】「フォルダ内ファイルの圧縮→フォルダ移動→最古ファイルの削除」を日次で実行するスクリプト
|
test
CHANGED
@@ -1,13 +1,33 @@
|
|
1
|
-
タスクスケジューラから日次で実行し、以下一連の処理を自動で実行するPowerShell
|
1
|
+
タスクスケジューラから日次で実行し、以下一連の処理を自動で実行するPowerShellスクリプトを作成しました。
|
2
|
-
|
2
|
+
元となるファイルが1種類の場合は問題なく動作したように見えますが、2種類以上の場合に上手く動作しません。修正案をご教示いただけると助かります。
|
3
3
|
|
4
|
+
**<処理概要>**
|
4
5
|
①フォルダA内のcsvファイルをzipで圧縮する
|
5
6
|
C:\folderA\aaa.csv → C:\folderA\aaa.zip
|
6
7
|
②圧縮したファイルをフォルダBに移動
|
7
8
|
C:\folderA\aaa.zip → D:\folderB\aaa.zip
|
8
9
|
③フォルダA内の元ファイル(未圧縮のcsv)を削除する
|
9
10
|
C:\folderA\aaa.csv
|
10
|
-
④移動先(フォルダB)に圧縮ファイルが
|
11
|
+
④移動先(フォルダB)に圧縮ファイルが11個以上あればタイムスタンプが一番古いファイルを削除
|
11
|
-
(常に最新
|
12
|
+
(常に最新10世代のみファイルが保管されている状態とする)
|
12
13
|
|
14
|
+
**<作成スクリプト>**
|
15
|
+
```ここに言語を入力
|
16
|
+
//フォルダA内のファイル名(拡張子なし)を取得
|
17
|
+
$src = Get-ChildItem -Name C:\folderA
|
18
|
+
$file = [System.IO.Path]::GetFileNameWithoutExtension("$src")
|
19
|
+
//①、②の処理
|
20
|
+
Compress-Archive -Path C:\folderA\*.* -DestinationPath C:\folderB\$file
|
21
|
+
//③の処理
|
22
|
+
Remove-Item C:\folderA\*.*
|
23
|
+
//④の処理
|
24
|
+
$a = (Get-ChildItem C:\folderB | ? { ! $_.PsIsContainer }).Count
|
25
|
+
if($a -gt 10){
|
26
|
+
Get-ChildItem C:\folderB |
|
27
|
+
Sort-Object LastWriteTime -Descending |
|
28
|
+
Select-Object -Skip 10 |
|
29
|
+
foreach{Remove-Item $_.FullName}
|
30
|
+
}
|
31
|
+
```
|
32
|
+
|
13
|
-
|
33
|
+
よろしくお願い致します。
|