• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:BATファイルでプログラムファイルの書き換え)

BATファイルでProgram Filesの半角スペースを含むフォルダを上書きする方法

このQ&Aのポイント
  • BATファイルを使用してProgram Filesの半角スペースを含むフォルダ内のファイルを上書きする方法を教えてください。
  • BATファイルのコードではProgram Filesの半角スペースがエラーの原因と考えられます。どのように修正すれば正常に動作するか教えてください。
  • 他のフォルダを指定すると正常に動作するため、Program Filesの半角スペースがエスケープされていない可能性があります。どのようにすれば半角スペースを適切に扱えるか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.4

No3さんの答えでも良いのですが、区切り文字(delims)は空に出来るので、 for /f "delims=" %%A in ('dir /b /s %TEST%test.txt') do copy NEW\test.txt "%%A" 何も指定しない場合の区切り文字は空白とタブです。つまり%%A にはデータを空白文字で区切った最初の一語が入ります。tokens=1-2 とか書くと、二番目の語が %%B に入ります。 詳しい説明は、for /? で表示できます。 "delims=" だと区切り文字が無くなるので、行全体が %%A に入ります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.3

delims 使ってもいいとおもう。 delims は、ファイルで使われることがない記号で、コマンドラインに悪影響がなければ何でもOK。 C:\> Set TEST="C:\Program Files\TEST\" C:\> For /f "delims=<" %i in ('Dir /s /b %TEST%test.txt') do @echo.copy NEW\test.txt "%i"

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

どう「ちゃんと動作しない」のですか?

全文を見る
すると、全ての回答が全文表示されます。
  • kawais070
  • ベストアンサー率52% (2242/4282)
回答No.1

Windows3.1以前との互換性のため、長いフォルダ名/ファイル名には、短縮形の名前が付けられています。 dir c:\ /x というコマンドを実行すると、その短縮形を見ることができます。 (たぶん、PROGRA~1 ってなっていると思う) なので、Program Files の代わりに、PROGRA~1 って書けばよいですよ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2つ目の「pause」は無効?

    DOSコマンドの「pause」について質問です。 -- test1.bat pause echo ああああ pause -- このようなバッチファイルを実行したときに 2つ目のpauseでは処理ストップしないようです。 # 3つ目を追加すると同様の動作をするようです。 # -- test2.bat # pause # echo ああああ # pause > NUL # pause # -- これってpauseコマンドのバグでしょうか?

  • batファイルの相対パス

    batファイルの相対パス あるバッチが相対パスであるファイルを参照しています このバッチファイルを直接起動すれば、正しく参照できますが、 別のディレクトリにいる別のバッチファイルからcallされた場合、 呼び出し先の相対パスではなく、 呼び出し元の相対パスになってしまいファイルを参照できません。 この問題をスマートに解決する方法はありませんか? 例のchild.batからはfile.txtを参照できますが、 parent_1.bat経由の場合、ファイルが見つかりませんとなります。 child.bat の中で、「cd c:\dir_a」を書いて基点を変更すればとりあえずは行けそうですが、可能な限り絶対パスのベタ書きは避けたいです。 宜しくお願いします。 【例】 c:\ | +-dir_a | | | +-child.bat | | | +-file.txt | +-dir_b | | | +-parent_1.bat | +-dir_c | +-parent_2.bat ===== file.txt ===== test-test-test ===== file.txt ===== ===== child.bat ===== type ./file.txt pause ===== child.bat ===== ===== parent_1.bat ===== call c:\dir_a\child.bat ===== parent_1.bat =====

  • batファイルで、引数のファイルリストを作りたい。

    あるbatファイルを作成しようとしています。 目的は、複数のファイルを選択して、batファイルにドラッグすると、そのパスをテキストファイルに書き込んでほしいのです。 for文を使おうと思ったのですが、以下の内容だとうまくいきません。 type NUL > "./test.txt" for %%i in (%*) do echo %%i >> "./test.txt" 空のファイルは作成されるのですが、ファイル名は記録されません。 何か方法があれば教えていただけないでしょうか?

  • 以下のtest.batでtest.txt中のダブルコーテションを削除し

    以下のtest.batでtest.txt中のダブルコーテションを削除したいと考えています。 【test.bat】 @echo off if "%1"=="" goto end set fname=%1 copy %fname% org >nul type nul >%fname% for /f %%a in ( org ) do (set line=%%a&& call :sub) del org goto end :sub set l=%line:"=% echo %l%>>%fname% goto :EOF :end 【test.txt】 "test1",101,1 "test2",201,2 "test3",301,3 dos窓からtest.bat test.txtを実行し、test.txt の内容を確認すると、 test1,101, という結果になります。 なぜ、最後の数字が削除されるのか? 2行目、3行目のデータが無くなるのは? というところがわかりません。 単純にダブルコーテーションを削除するにはどうしたらよいでしょうか? よろしくおねがいします。

  • batファイルの記号

    batファイルでechoコマンドがあると思いますが、 下記の文章のように記号を二つ並べているのはなぜでしょうか? ※>>の部分 echo [%DATE% %TIME%] >> "%~dp0%\test.txt"

  • batファイル コマンド

    batファイルでSetを使用して変数を代入してそれをechoでテキストファイルに記載させようとしているのですが、なぜか記載できていません。 何故でしょうか?回答よろしくお願いします。 (例) set TEST=SUCCESS echo %TEST% %COMPUTERNAME%>> "%~dp0%\TEST.txt" 作成されたTEST.txtを開くと 「KAISYA_PC」【※PC名】と入力されており変数TESTの値「SUCCESS」が 入っていません。

  • バッチファイルでFINDSTRを使って文字列検索をしたいが、ファイルが

    バッチファイルでFINDSTRを使って文字列検索をしたいが、ファイルが開けない (1)と(2)のバッチファイルを作りました。それぞれ単体で実行すると、エラーは出ません。 (1)と(2)を一緒にした(3)というバッチファイルで実行すると、FINDSTRのところで、 「ファイルを開くことができません」というエラーが出て、途中でとまってしまいます。 エラーを出さずに実行する方法は何かないでしょうか? (A.batは、CドライブにあるWord.exeを実行するだけのバッチファイルです。) どうぞよろしくお願いします。 【(3)の中身】 call A.bat >kekka.txt   ←この1行だけが(1)のバッチファイルの中身です GOTO kensaku GOTO :EOF ::文字列検索 :kensaku SET keyword=作成しました。   ←この行から下が(2)のバッチファイルの中身です FINDSTR %keyword% kensaku.txt > NUL GOTO kekka%ERRORLEVEL% GOTO :EOF :kekka0 REM 文字列あり ECHO %keyword%がありました PAUSE > nul GOTO :EOF :kekka1 REM 文字列なし ECHO %keyword%はありませんでした。 PAUSE > nul GOTO :EOF

  • .batファイル作成 echo. の使い方

    .batファイルを編集しています。 表示させたい文字列の間に改行を含みたいので、 echo. を記述します。 win/2000 でデスクトップdirから編集していて、テストのためファイルをクリックして実行すると何の問題もないのですが、 .batファイルをcmdを立ち上げた時のデフォルトのカレントdirである、ユーザのhomedirに移し、cmdからコマンドで実行すると echo. を書いた部分はコマンドとして認識されずエラー表示がでます。 原因と対処についてお教えいただければと思います。

  • batファイルの結果をテキストに吐き出すには?

    以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか? (とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。) henkou.bat -------------------------------------- net user "test user1" ps123456 /domain net user "test user2" ps456789 /domain henkou.bat > c:\henkou結果.txt pause -------------------------------------- 吐き出されたhenkou結果.txt -------------------------------------- C:\>net user "test user1" ps123456 /domain -------------------------------------- DOS画面(吐き出したいもの) -------------------------------------- C:\>net user "test user1" ps123456 /domain コマンドは正常に終了しました。 C:\>net user "test user2" ps456789 /domain コマンドは正常に終了しました。 C:\>henkou.bat 1>c:\henkou結果.txt --------------------------------------

  • .batファイルが実行できません[VB2005]

    お世話になってます。 VB2005にて、.batファイルの中身を書換え、他アプリケーションを 実行する処理を行っています。 しかし.batの書換えは正確に行われているのですが .bat実行中プロンプト内に出力されたテキストと異なる文字列が入っており 処理が完了しませんでした。 正しく処理するにはどのようにしたらよろしいでしょうか。 コードは下記の通りです。 'BATCHファイルの書換え処理 Dim Bat_f As New System.IO.StreamWriter(Cur_dir + "LT-AutoP1.BAT", False, System.Text.Encoding.Default) For Each line As String In ListBox1.Items Bat_f.WriteLine("CALL ACLT " + line + " /b AutoP.scr") Next Bat_f.Close() Dim psInfo As New ProcessStartInfo() psInfo.FileName = "C:\Program Files\AutoCAD LT 2002\LT-AutoP1.BAT" ' 実行するファイル psInfo.CreateNoWindow = False psInfo.UseShellExecute = False Process.Start(psInfo) 尚、正確に出力された.BATを直接ダブルクリックすると正常に処理されます。 CALL ACLT Z:\hoge\hoge1\hogehoge.dwg /b AutoP.scr コマンド実行中は下記のように表示されていました Z:\hoge\hoge1\>CALL ACLT Z:\hoge\hoge1\hogehoge.dwg /b AutoP.scr 'ACLT'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません

このQ&Aのポイント
  • ディスクグラインダーの刃の交換方法や注意点について詳しく教えてください。
  • ディスクグラインダーの刃の交換時に注意すべきポイントや、正しい交換手順についてご説明いたします。
  • ディスクグラインダーの刃の取り外し方と交換時の注意点について解説します。
回答を見る

専門家に質問してみよう