• 締切済み

バッチファイルの空白文字などの扱い

お世話になります。 Lhazのコマンドラインからの実行について、 コマンドプロンプトを立ち上げ、  cd C:\Program Files\Lhaz  lhaz.exe /c /tzip /d"圧縮したファイルの保存先フルパス" "圧縮するファイルのフルパス" を実行すると問題なく動作します。 この2行でバッチファイルを作成し バッチファイルから動作させるとエラーとなります。 'd"圧縮したファイルの保存先パス"' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 空白文字の扱いなどが問題なのかと思っていますが、 修正の方法が良くわかりません。 フルパスのフォルダー名にも空白が入っています。 すいませんが、お助け願えませんでしょうか? よろしくお願いします。

  • ken123
  • お礼率73% (299/409)

みんなの回答

  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.4

No.3の補足です。 >lhaz.exe /c /tzip /d が表記されない lhaz.exeをフルパス指定して、バッチを下記のように一文で記述するとどうなりますか。 "C:\Program Files\Lhaz\lhaz.exe /c /tzip /d"圧縮したファイルの保存先フルパス" "圧縮するファイルのフルパス"

ken123
質問者

お礼

通りました! ありがとうございました!!! 他のバッチは改行してもできてるのですけど、.exeなどの場合は、何かあるのでしょうかね? ともかくありがとうございました!

  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.3

(1)異なるドライブで作業していることも考慮して、cdコマンドに /d オプションを付けてみる。添付画像参照。 (2)バッチファイルを「管理者として実行」してみる。 バッチファイルを右クリックして「管理者として実行」。 ---以上です。

ken123
質問者

お礼

kteds様、早速のご回答ありがとうございます。 1行目の/dオプションありがとうございます。 1行目は問題なく、コマンドプロンプトにも表記されます。 2行目の lhaz.exe /c /tzip /d が表記されないところで つまづいています。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>バッチファイルから動作させるとエラーとなります。 下記のコマンドがエラーになると思います。 cd C:\Program Files\Lhaz 下記のようにディレクトリ名やファイル名に空白が入るときはダブルクォーティションで囲まないと正しい処理が出来ません。 コマンドに追加するパラメータは空白で区切られます。 cd "C:\Program Files\Lhaz"

ken123
質問者

お礼

bunjii さま 早速のお返事ありがとうございます。 1行目も修正して、バッチファイルから起動して cdできるとこまでは確認できました。 #2さんの言われるように、/dのところで何かが起こっているようです

  • chie65535
  • ベストアンサー率43% (8522/19371)
回答No.1

そのバッチファイルをメモ帳で開いて「右端で折り返す」のチェックが外れているか確認して下さい。 多分、メモ帳で開いたら cd C:\Program Files\Lhaz lhaz.exe /c /tzip / d"圧縮したファイルの保存先フルパス" "圧縮するファイルのフルパス" のように、3行になっちゃってる筈です。

ken123
質問者

お礼

chie65535さん、ありがとうございます。 一応右端の折り返しは大丈夫のようです。 実行させているコマンドプロンプトの表記に、2行目の前半部分の   lhaz.exe /c /tzip /d が表記されないのですが、これはおかしいでしょうか? バッチファイルには間違いなく記述しています。 最初は1行目と2行目に1行の空白行があったのですが、 空白行を削除したら、エラーにdの文字がなくなりました。 ------------- コマンドプロンプトの表記 ------------- C:\Program Files\Lhaz>"保存先フルパス" "圧縮するフルパス" '"保存先フルパス"' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

関連するQ&A

  • バッチファイルについて

    @cmd /k 上記の内容で「a.bat」というファイル名で保存しました。 この保存したファイルをダブルクリックすると、バッチファイルが格納されてるフォルダのパスがコマンドプロンプト上に表示されます。 パス表示後に、いろいろな動作(「echo~」など)を実行したいと思っているんですが、うまくいきません。 どうやら一番上の「@~」を記述したものは、そのあとに「echo~」などを記述しても実行してくれないみたいです。 「@cmd /k」実行後に何か(「echo~」など)を実行するにはどうしたらいいですか?

  • バッチファイル

    お世話になります。 バッチファイルを用いて、実行されるプログラムがあります。 私の作成したものではないので、どのようなやり取りが内部で行われているのかは、詳細はわかりません。 例えば、D:\Programフォルダーの中にプルグラムをインストールしたとすれば、引数を2つ指定して(例:aaaとbbb)、バッチファイル(test.bat)を以下のように実行すれば、プログラムは正常に作動します。 D:\Program>test aaa bbb しかし、以下の場合には、正常に作動しません。 C:\>D:\Program>test aaa bbb つまり、パスを含めて、バッチファイルを実行することは、このプログラムは許可してくれません。 ここで、例えば、VBなどを用いて、テキストボックスなどで引数を二つ指定して、実行ボタンをクリックすれば、必ず、D:\Program>test aaa bbbという状態で、バッチファイルが実行されるようにするには、どのようにすればよろしいでしょうか? もしご存知の方がいらっしゃいましたら、是非、ご教授願います。 以上、宜しくお願いいたします。

  • 4GB弱のファイル等を日次で自動的に圧縮するバッチファイルを作成したい

    趣味のコーディングをしているのですが、プログラム中で、あるファイルを圧縮する必要が出てきました。 要件は以下の通りです。 1.圧縮対象は、4GB弱のファイルを2つ と、 1GB弱のファイルを1つ と、 50MBのファイルを1つ(must条件) 2.できれば、1.の4つのファイルを1つのファイルにまとめたい(need条件) 3.圧縮の命令は、バッチファイル(~.bat)に記述し、日次で自動実行したい(must条件) ※3.の自動実行については、WinXP標準機能の「タスク」を使ってバッチファイルをキックする予定 4.圧縮後のファイルには何らかのファイル名を指定したい(must条件) いろいろと調べて下記の3つを試したのですが、それぞれに記述した理由でダメでした。 A:zip.vbs ファイルが大きすぎるらしく、上記の4GB弱のファイルを含めて圧縮しようとするとエラーになる。 B:makecab 圧縮後のファイル名を指定できない。 C:lhaz(コマンドライン) コマンドラインから起動したところ、GUIのメニューが出てきてしまい、自動実行できない。 何らかの形で、上記要件を満たす形で圧縮をできないでしょうか。 なお、lhaz(GUI)でzip圧縮を試してみたところ、圧縮後のサイズは900MB程度でした。 また、圧縮形式に拘りはありません。それなりにサイズが小さくなれば、形式はなんでも良いです。 ご回答よろしくお願い致します。

  • バッチファイルの作成について

    分からないことが2つありますので、 質問させていただきます。 1.バッチファイルを実行するときに   他のパソコンでは出来ない環境とかはあるのか。  (例えば、ファイル削除のバッチファイルを作成したとします。   管理者権限でバッチファイルを実行したにも関わらず   消せない…なんていうことはあるのでしょうか?   以前、プログラムを書いて、自分のパソコンでは上手く動作したのですが、   他のパソコンだと上手く動作しませんでした。(ファイルの削除が上手く行かなかった)   それに対する対応策などもあれば、教えてください。) 2.バッチファイルのコマンドプロンプトが自動終了するのを防ぎたい   IEが自動で上がるのを防ぐために、コマンドプロンプトで   IE_BLOCKERを実行し、キーボードで色々入力して実行していく必要があります。   そこで、 cd C:\IE10_Blocker IE10_Blocker.cmd /B pause 上記のように書き、 batファイルとして保存しました。 しかし、pauseがきくことなく、勝手に画面は閉じてしまうし、 C:\にIE10_Blockerが無かったとしても分からなくなってしまいます。 何か改善策はあるのでしょうか? 以上、よろしくお願い致します。

  • バッチファイル内のパスについて

    バッチファイルのパスについて質問があります。 下記内容のファイルを実行すると、  「C:\Programが見つかりません」 というようなエラーとなってしまいます。 setコマンド時には、スペースの入ったパスはエラーとなってしまうのでしょうか? どなたがご教授ください。お願いします。 @echo off set JAVA_HOME=C:\Program Files\JavaSoft\JRE\1.3.1_12

  • コマンドプロンプト パスに空白を含む場合

    コマンドプロンプトからコピー等を実行する際、空白を含むパス対策として"で囲む方法があるそうですが、「空白のないパス」を囲んでもいいですか? プログラムからバッチファイルを作り実行する際、パスに空白を含むかどうか判別するのが面倒なので、全部囲ってもいいか?という事です。

  • バッチファイルで複数のファイルを立ち上げたけれど、思うような結果がでません。教えてください

    お世話になります。 帰宅して、いつも会社用で提出する書類を4種類、そして家計簿を毎日つけております。 ただ、その度にいつもそれぞれの書類をクリックするのが面倒に感じており、バッチファイル化して作業を効率化しようと思い、バッチファイルを作りました。 しかし、以下のコマンドラインでファイルは開くのですが、問題が2つあります。 1. 「内部または外部コマンド、操作可能なプログラム、バッチファイルとして認識されていませんとでます」と表示される。 2. コマンドの画面が消えない(消えていなくでも、家計簿などの画面は立ち上がっている) 【やりたいこと】 「内部または外部~」のコメントがでず、そしてコマンドの画面がデスクトップに残らずに家計簿など立ち上げたい。 バッチファイルしたコマンドライン (以下のパスに書類やアプリがあります) ↓ C:\Program Files\Microsoft Office\Office\EXCEL.EXE C:\docments\家計簿.xls exit コマンドって半角空白とかあってはいけないのでしたっけ? いろいろ試してみたのですが、結果は思うようにいきません。 宜しくお願いいたします。

  • バッチファイルでXCOPYコマンドが使えない

    XCOPYコマンドを使ったバッチファイルを作成しましたが、 バッチファイルの保存場所によって、 実行できたり、エラーになったりします。 エラーになる場合のメッセージは以下になります。 「'XCOPY' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 環境変数の設定は問題ありません。 ご教授ください。 よろしくお願いします。

  • rshを使用したバッチファイル

    今、あるサーバにPCからシェルをFTPして、RSHでFTPしたシェルを実行するバッチファイルを作成していますが、 コマンド1行づつをカット&ペーストで実行すると正常に動作するのですが、バッチファイルをWクリックすると、FTP は正常に動作するのですが、RSHの処理がされず、ループ? (ループの記述はなし)してしまいます。 *ECHO ONでじっこうすると、RSHの行は呼ばれているみたいですが、処理が失敗しているようです。 バッチファイルでの設定に問題があるのでしょうか? <バッチの内容 start> *IP、パス、ユーザ名は伏せさせていただきます。 ftp -s:d:\PATH\send.txt XXX.XXX.XXX.XXX rsh XXX.XXX.XXX.XXX -l USRNAM -n "chmod +x /PATH2/rsh.sh;source /PATH3/envsetUSRNAM;PATH4/rsh.sh" <バッチの内容 end>

  • バッチからSQLCMDを実行する方法

    以下のようなコマンドをバッチファイル(.bat)に記載し、実行しています。(ローカルのsqlserverにwindows認証で入れる事は確認済みです。) !!sqlcmd -E -d database -i c:\sql\a.sql ですが、バッチを実行してもsqlcmdが動作せず、 「'!!sqlcmd'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」 というエラーが発生します。 バッチファイルから、sqlcmdの実行方法をご存知の方、申し訳ありませんがご教示お願いします。