teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2016/08/04 14:08

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -17,3 +17,31 @@
17
17
  Get-Content C:\work\INPUT.csv | ConvertFrom-Csv -Header No.,day,ID1,ID2 |
18
18
  Select-Object No., day, @{Name="ID1"; Expression={$_.ID1.PadLeft(3, "0")}}, @{Name="ID2"; Expression={$_.ID2.PadLeft(3, "0")}}
19
19
  ```
20
+ ###追記
21
+ これで試してみてください。
22
+
23
+ input.csv
24
+ ```CSV
25
+ 1601,2016/08/04,001,001
26
+ 1017,2016/08/04,002,025
27
+ 1058,2016/08/04,103,001
28
+ 1358,2016/08/04,500,002
29
+ 0910,2016/08/04,500,""
30
+ ```
31
+ input_list.csv
32
+ ```CSV
33
+ 001,りんご支店
34
+ 002,バナナ支店
35
+ 025,キウイ支店
36
+ 103,みかん支店
37
+ 500,メロン支店
38
+ ```
39
+ convert.ps1
40
+ ```PowerShell
41
+ $dic = @{}
42
+ Import-Csv .\input_list.csv -Header ID, Name |
43
+ % {$dic[$_.ID] = $_.Name}
44
+ Import-Csv .\input.csv -Header No., day, ID1, ID2 |
45
+ Select-Object No., day, @{Name="ID1"; Expression={$dic[$_.ID1.PadLeft(3, "0")]}}, @{Name="ID2"; Expression={$dic[$_.ID2.PadLeft(3, "0")]}} |
46
+ Export-Csv .\OUTPUTData.csv -Encoding Default -NoTypeInformation -Force
47
+ ```

1

追記

2016/08/04 14:08

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -4,4 +4,16 @@
4
4
  Get-Content C:\work\INPUT.csv | ConvertFrom-Csv -Header No.,day,ID1,ID2 |
5
5
  %{ $_.START.PadLeft(3,"0")} |
6
6
  %{ $_.END.PadLeft(3,"0")}
7
- ```
7
+ ```
8
+ ###追記
9
+ たとえばこれを
10
+ ```PowerShell
11
+ Get-Content C:\work\INPUT.csv | ConvertFrom-Csv -Header No.,day,ID1,ID2 |
12
+ %{ $_.ID1.PadLeft(3,"0")} |
13
+ %{ $_.ID2.PadLeft(3,"0")}
14
+ ```
15
+ こう変えるとお望みの動作になりますか?
16
+ ```PowerShell
17
+ Get-Content C:\work\INPUT.csv | ConvertFrom-Csv -Header No.,day,ID1,ID2 |
18
+ Select-Object No., day, @{Name="ID1"; Expression={$_.ID1.PadLeft(3, "0")}}, @{Name="ID2"; Expression={$_.ID2.PadLeft(3, "0")}}
19
+ ```