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

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

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

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

Q&A

解決済

1回答

5600閲覧

コマンドプロンプトで、サブディレクトリも参照するパスの書き方ってありますか?

退会済みユーザー

退会済みユーザー

総合スコア0

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

0グッド

0クリップ

投稿2015/08/23 07:12

編集2015/08/23 07:13

コマンドプロンプトでpngquantとういうツールでpngファイルをディレクトリごと一括圧縮するやり方をしています。

コマンドは以下です。

pngquant --ext .png --force C:\test.com\img\*.png pngquant --ext .png --force C:\test.com\img\*\*.png pngquant --ext .png --force C:\test.com\img\*\*\*.png

上記のようにimgディレクトリの中のディレクトリの中のpngファイルも参照と一個一個書いていますが、取りこぼしがないよう一行で、指定したディレクトリの中のpngファイル、またその階層にディレクトリあればその中のpngファイル...みたいな感じでサブディレクトリすべてのpngファイルを参照するパスの書き方ってありますか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

確認できる環境がないので誤りがあったらごめんなさい。
下記を試してみてください。

まず、所望のパスが取得できているかの確認。

$ cd C:\test.com\img && for /r %p in (*.png) do @echo %~fp

なお、もしバッチファイル化する場合は、変数を%pではなく%%pとしてください。
それで、取得しているパスが想定通りなら以下のようにするとOKだと思います。

$ cd C:\test.com\img && for /r %p in (*.png) do pngquant --ext .png --force %~fp

投稿2015/08/23 08:14

pi-chan

総合スコア5936

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

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

退会済みユーザー

退会済みユーザー

2015/08/23 11:33 編集

ご回答ありがとうございます。 所望のパスが取得できているかの確認までできました。ありがとうございます。 その後、できなかったです.. pngquant のコマンドですが「pngquant.exe」があるpngquantフォルダに移動しないと pngquant のコマンドは実行されないのです。説明不足で申し訳ございません。 正確には以下のように、pngquantフォルダに移動して実行するものです。 cd \Users\Documents\pngquant pngquant --ext .png --force C:\test.com\img\*.png pngquant --ext .png --force C:\test.com\img\*\*.png pngquant --ext .png --force C:\test.com\img\*\*\*.png 申し訳ございませんが なにか方法があればご教授いただきたいです。
pi-chan

2015/08/23 12:39

ごめんなさい、考えが足りなかったです。。 下記ではどうでしょう。 for /r C:\test.com\img %p in (*.png) do pngquant --ext .png --force %p 下記ページが参考になると思います。 > http://rtaki.sakura.ne.jp/infra/?p=579
退会済みユーザー

退会済みユーザー

2015/08/27 09:14

返信遅れました。すいません。 すごい!できました! ありがとうございます。 参考ページもありがとうございます。 自分もコンマドライン使いこなせるようこれから勉強します。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問