Windows端末にSAPCARをインストールして利用してみる

SAPが提供している拡張子がSARとなっているファイルについて。

SARファイルはSAPが提供するSAPCARを用いてアーカイブされたファイルとなっており、ファイルを抽出するにはSAPCARコマンドを利用します。

本記事ではWindows端末にSAPCARをインストールしてSARファイルを作成したり、SARファイルからファイルを取り出してみます。

なお`SAPCAR`のダウンロードには`S-User`が必要となります。

## ドキュメント

- [212876 - The new archiving tool SAPCAR](https://me.sap.com/notes/212876/E)
- [2452588 - SAPCAR release and patch information](https://me.sap.com/notes/2452588/E)
- [2632047 - How to download SAPCAR for extracting .SAR files - SAP for Me](https://me.sap.com/notes/2632047/E)

## SAPCARとは？

`SAPCAR`はSAPが`CAR`コマンドに変わって提供するアーカイブコマンドになります。

ノートに記載がありますが、`R/3 4.6c`より前、SAPからは提供されるアーカイブファイルは`CAR`形式で提供されていたようです。

それが`R/3 4.6c`以降はSAPが提供するSAPCARを用いた`SAR`形式に切り替わりました。

## 今回の環境

- Windows 10 21H2

## WindowsにSAPCARをインストール

`SAPCAR`コマンドは`sap for me`の`ソフトウェアダウンロードセンター`から入手できます。

`sap fo me`のソフトウェアダウンロードについてURLでアクセスする場合、https://me.sap.com/softwarecenter にアクセス。

画面から遷移する場合は`サービスおよびサポート`の画面　または `システムおよびプロビジョニング` から遷移できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/fb2c8126-57ae-eabf-b029-f593c46cbb38.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/1516d7b9-9b75-a889-d268-17a8815b6a9c.png)


ソフトウェアのダウンロードまできたら、`サポートおよびパッチ`　＝＞　カテゴリ別 ＝＞　SAP Technology Components　＝＞　SAPCAR　＝＞　バージョン　を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/8bffcc74-9111-96c2-c2c2-18c190ae182c.png)

2023年7月現在は7.22が最新となっていました、今回はこちらのWindows版をダウンロードするため、プルダウンからWindowsを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/3ca9fc4b-8890-b514-8b9c-239beeb596b8.png)

リンクをクリックすればブラウザでダウンロードできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/ca03615c-87a6-ea0d-2205-94e08e3f1cfb.png)

EXEファイルがそのままダウンロードできました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/716a9472-7db2-b310-94ff-3fe32e611a2f.png)

## ダウンロードしたexeファイルを適当なディレクトリに配置する

ダウンロードしたコマンドを（SAPCAR_1115-70006231.EXE）適用なディレクトリに配置して利用可能なオプションを確認してみます。

今回は`c:\qiita\sapcar\sapcar.exe`に配置してみました。

必要な場合はPATHに適宜、追加して利用して下さい。

## 利用方法とオプションを確認してみる

ダウンロードした実行ファイルに引数をなにもつけずに実行すると、利用方法とオプションの確認ができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/906cf09b-539e-2766-f414-33f9e0e4a9bc.png)

## SARファイルを作成してみる

```text
create a new archive:
SAPCAR -c[vir][f archive] [-P] [-C directory]
   [-A filename] [-T filename] [-X filename]
   [-p value] [-V] file1 file2 ...
```

今回は、PowerShellでhelloworld.txtとfoobar.txtを作成して、これをアーカイブしてsample.SARファイルを作成してみます。

```powershell
# 今回、sapcarを配置したディレクトへカレントディレクトリを移動
cd c:\qiita\sapcar

# helloworld.txt と foobar.txtを作成
New-Item .\helloworld.txt -value helloworld | Out-Null
New-Item .\foobar.txt -value foobar | Out-Null

.\sapcar.exe -cvf sample.SAR helloworld.txt foobar.txt
````

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/111647eb-de48-1bf4-2a58-e96771e5cfc4.png)

`sample.SAR`が作成されました。

### SARファイルの中身をリストしてみる

```text
list the contents of an archive:
SAPCAR -t[vs][f archive] [file1 file2....]
```

オプション`-t`を利用するとアーカイブに含まれているファイルをリストできるようなので、ここでは先程作成したsample.SARファイルに含まれているファイルを確認してみます。

オプションの意味は下記参照

- `-t            : list the contents of an archive`
- `-v            : verbosely list files processed`
- `-s            : do free space check`
- `-f FILE       : use archive file FILE (default DEFAULT.SAR)`

```powershell
# 今回、sapcarを配置したディレクトへカレントディレクトリを移動
cd c:\qiita\sapcar

.\sapcar.exe -tvsf sample.SAR
````

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/897cb999-cd12-4e90-fe11-f42e7785ec2a.png)

画像のようにsample.SARにfoobar.txtとhellworold.txtが含まれている事が確認できます

また今回はオプション`s`をつけているので、下記のメッセージも表示されています。

```text
The extraction does not require free disk space (maybe
the extraction will only overwrite existing files of
greater or equal size or the uncompressed size of each
file in the archive is zero).
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/e7e0be69-e758-91bc-0ffe-c25b5d9b381d.png)


c:\qiita\sapcar\のディレクトリには`helloworld.txt`と`fooar.txt`をおいたままだったので上書きするだけだよって感じのメッセージになっていました。
結構賢いですよね。

ためしに`helloworld.txt`と`foobar.txt`を削除してから実行したメッセージは下記

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/d79ab1da-3f79-55ce-0309-25c3ad252bf9.png)

テキストファイルでサイズが小さすぎてちょっと面白みがなかったですね。

## SARファイルを展開してみる

```text
extract files from an archive:
SAPCAR -x[v][f archive] [-R directory] [-A filename]
   [-V] [file1 file2....]
```

オプションの意味は下記参照

- `-x            : extract files from an archive`
- `-v            : verbosely list files processed`
- `-f FILE       : use archive file FILE (default DEFAULT.SAR)`
- `-R dir        : use dir instead of current directory`
- `-A FILE       : get names to include from file FILE`
- `-V            : activate signature verification in existing commands -a, -c, -d, -t and -x.`

```powershell
# 今回、sapcarを配置したディレクトへカレントディレクトリを移動
cd c:\qiita\sapcar

# saple.SARを展開
.\sapcar.exe -xvf sample.SAR

# helloworld.txtだけをsample.SARから展開
.\sapcar.exe -xvf sample.SAR helloworld.txt

# helloworld.txtとfoobar.txtをsample.SARから展開
.\sapcar.exe -xvf sample.SAR helloworld.txt foobar.txt

# sample.SARを　ディレクトリ sampleDir に展開
.\sapcar -xvf sample.SAR -R sampleDir

```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670622/0eb8c491-dbd0-4817-c092-32f5d427955e.png)


## 総評

初見ではSAPから提供されるファイルは、独自の形式でアーカイブされてるって驚きがあった気がします。