質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Q&A

解決済

1回答

2279閲覧

batファイルで個別ファイル圧縮

cerophan

総合スコア15

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

0グッド

0クリップ

投稿2021/10/30 23:49

batファイルで個別ファイル圧縮

batファイルで個別ファイル圧縮として、サイトを参考に作成してみたのですが、圧縮されないファイルがあります。具体的に言うとファイルタイトルに「)」や「 -」が含まれているとき圧縮できませんでした。

発生している問題・エラーメッセージ

タイトルによって、圧縮できないファイルがある。

該当のソースコード

https://aprico-media.com/posts/3687

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/10/30 23:51

コードを乗せましょう。
cerophan

2021/10/30 23:58

ごめんなさい。人のコードなので載せてはダメかと思って控えてしまいました。 転載させていただきます。 ``` @ECHO OFF SET path="C:\Program Files\7-Zip\" SET exeFile=7z.exe REM zip解凍パスワード(%はエスケープのため%%とする) SET pass="XXXXXXXX" FOR %%f IN (%*) DO ( %path%%exeFile% a -p%pass% %%~dpf%%~nf.zip %%f ) ECHO zip圧縮完了しました。 pause ```
otn

2021/10/31 00:02

「サイトを参考に作成してみた」じゃなくて「改変せずまるごとコピペ」ということでしょうか? であれば、載せる必要は無かったです。 普通は、「サイトを参考に作成してみた」と書くと、自分でなんかの修正をしたと言うことで、その修正が間違っている可能性があるので、載せるようにコメントしました。
cerophan

2021/10/31 00:06

パスの設定のところはいじっていたので「参考に」と記載してしまいました。スミマセン。 通常のファイルはうまく圧縮できるので、パス設定の問題ではなさそうです。 ご教示いただけると助かります。
guest

回答1

0

ベストアンサー

ファイルのパス名に、空白や括弧などが入っていることを想定しないコードですね。
あと、環境変数PATHも普通の変数として使っているのもひどい。

CMD

1@ECHO OFF 2 3SET exeFile="C:\Program Files\7-Zip\7z.exe" 4 5REM zip解凍パスワード(%はエスケープのため%%とする) 6SET pass="XXXXXXXX" 7 8:LOOP 9IF "%~1"=="" GOTO :END 10%exeFile% a -p%pass% "%~dp1%~n1.zip" "%~1" 11SHIFT 12GOTO LOOP 13 14:END 15ECHO zip圧縮完了しました。 16 17PAUSE

投稿2021/10/31 00:29

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cerophan

2021/10/31 00:37

すばらしい!!うまくいきました。ご指摘の件について、ビフォーアフターのコードを見比べて勉強してみます!ありがとうございました!
otn

2021/10/31 00:56 編集

空白を含んでいるかもしれないファイル名は " " で囲むというのが基本です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問