Windowsのbatファイルでset /pを改行したい

このQ&Aのポイント
  • Windowsのbatファイルでset /pを使用する際、入力が文の続きからになってしまいます。改行させて新しい行の一番初めに文字を入力できるようにする方法を教えてください。
  • batファイル内でset /pを使用する際、入力が文の続きからになることがあります。改行させて新しい行の一番初めに文字を入力できるようにする方法を教えてください。
  • Windowsのbatファイルでset /pを使用する際、入力が文の続きからになってしまう問題があります。改行させて新しい行の一番初めに文字を入力できるようにする方法を教えてください。
回答を見る
  • ベストアンサー

set /pの改行

set /pの改行 Windowsのbatファイルを作成したのですがset /pを使用する際、入力が文の続きからになってしまいます。 これを改行して新しい行の一番初めに文字を入力できるようにしたいです。 bat内 @echo off set /p A="変換したいファイル名を入力してください" for /f "delims=" %%i in ('echo %A') do set A2=%%~ni --略-- となっています。 実行すると ----------------------------------- 変換したいファイル名を入力してください_ ----------------------------------- という風に表示されます。これを ----------------------------------- 変換したいファイル名を入力してください _ ----------------------------------- という風に改行させてから文字を入力させたいです。 どうすればよいでしょうか?

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

先に echo で文言を表示させてから、文言を指定せずに set /p を実行しては? 例) ---------------------------------------- echo 変換したいファイル名を入力してください set /p A= --------------------------------------------

nosuke5614
質問者

お礼

うまくいきました。 ありがとうございます。

関連するQ&A

  • .batファイル作成 set コマンドの使い方

    .batファイルで、以下のような処理をしたいのですが・・・ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 例1 (1)set /p name="名前を入力しなさい⇒" と打ちます。 (2)すると 名前を入力しなさい⇒ と出てくるので、"無名"と入力するとします。 変数 name=無名 が登録されます。 (3)そして↓ echo 私の名前は%name%です 私の名前は無名です と表示されるわけですが、 (4)さらに、出力された"私の名前は無名です"をbodyという変数にセットしたいとします。 .batファイル内で構文をどのようにかけばよいのでしょうか? お教え願います。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 例2 上記の様な処理で、変数bodyに文書を登録したいのですが、一行ではなく、改行やスペーウを加えて何行かにまたがる、長い文書を登録する事は可能でしょうか? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 上記2件について、お教えいただえればと思います。 よろしくお願いたします。

  • バッチファイル set /p による条件分岐について質問

    vistaを使っています。 set /p でキー入力を受け付け処理を分岐させるファイルを作っているのですが・・・ 例外の条件を定義する方法がわかりません。 詳細は下をご覧になってください。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @echo off rem ##################################### rem 分岐プログラムサンプルです! rem ##################################### :start cls echo ■■■分岐プログラムサンプル■■■ echo 【1】test1へ! echo 【2】test2へ! echo 【3】test3へ! echo 【4】メニューを終了します! echo ■■■■■■■■■■■■■■■■■ set /p num="実行したいメニューの数字キーを入力してください⇒" if "%num%"=="1" goto A if "%num%"=="2" goto B if "%num%"=="3" goto C if "%num%"=="4" goto end . . . <省略> ↑のように入力された数字によって、処理が変わるようになっているのですが、ここで"上記以外の条件"を定義するにはどのように記述すればよいのかお教えいただけませんでしょうか。

  • powershellでの改行方法について

    テキストファイルの特定の文字列の後の改行コードをカンマに変換するbatファイルを作成しようと思っているのですがうまくいきません。 DOSで用意されているコマンドだけでは実現は難しいと思って、powershellコマンドを使っています。 実現は一つのbatファイルで行いたいのですが、どなたか実現方法を知っていましたら教えていただけませんでしょうか。 [JIKKO.bat] powershell.exe "$(Get-Content TEST.txt) -replace '★`n',','" >TEST_RESULT.txt [TEST.txt] あああ,いいい,ううう★ えええ かかか,ききき,くくく★ けけけ [TEST_RESULT.txtの理想] あああ,いいい,ううう,えええ かかか,ききき,くくく,けけけ

  • ファイル内の改行を削除し1行にするシェル

    お世話になっております。 ファイル(テキスト)内には、改行を含んだ複数の行が記述されています。 これを1行にして上書き保存するシェルを実行をするための シェルを作成したいと思っています。 ファイル内には以下のような値が改行を含んで入っています。 123 456 789 →これを、「123456789」と改行を取り除き、既存のファイルの上書き保存をしたい なお、改行を含んだ対象のファイルは、ファイル名にある文字を含む ファイルのみに対して行いたいのですが。 例:ファイル名に、「*abc*」、「*def*」、「*xyz*」を含むファイルが対象 改行を取り除くコマンドはわかるのですが、シェルにするプロセスがわかりません。 cat 入力ファイル名 | tr -d '\n' > 変換後の出力ファイル名 ご教授いただきたく、よろしくお願いします。

  • batファイルでPC名称の変更

    お世話になります。 今batファイルでPC名称を変更できるようにしているのですが 英数字のみなら下記でいけるのですが「-」が入ると「Verbスイッチが無効です」 と出て変更できません。 どなたかいい方法はご存知でしょうか? 尚業務上の使用のためbatファイルのみでやりたいのでその他ソフトは使用不可です。 echo PC名称を入力してください echo 例:PCNAME set /p Pcname=入力: rem 入力値の確認 echo *************************************** echo  PC名称確認 echo. echo  PC名称は[ %Pcname% ]です echo. echo *************************************** echo 0:PC名称の修正 echo [0]以外を入力した場合はYesになります echo *************************************** rem set Slt=nul set /p Slt=確認入力: if '%Slt%'=='0' goto loop echo PC名称を設定します。しばらくお待ちください。 wmic ComputerSystem WHERE "name='%computername%'" Call Rename %Pcname よろしくお願いいたします。

  • フォルダ改行

    1.フォルダ名を選択 2.F2キー入力 3.Ctrl+J でEnter で改行できると思ったのですが、 “ファイル名には次の文字は使えません” とはじかれてしまいました。 原因を知っている人いませんか?

  • 連番で名前をつけるbatファイルについて!

    このバッチファイルについて解説よろしくおねがいします。 (*´ω`*) まだbatファイルをあまりいじったことないので 所見でパッとかけないのですが、 何回かかいて覚えるしかないですかね? よろしくおねがいします。(*´ω`*) 連番を付けた複数ファイルを一瞬で作成する https://pc-automation.tech/wp/make-sequence-number-files/ @echo off set /p filename="ファイル名を入力してください:" set /p extension="拡張子を入力してください:" set /p number="ファイル数を入力してください:" setlocal enabledelayedexpansion for /l %%n in (1,1,%number%) do ( set num=0%%n set num=!num:~-2,2! type nul > !num!_%filename%.!extension! ) endlocal

  • バッチからファイル作成をするときに困っています

    リダイレクトで、バッチからファイルを作っています。 部分的ですが、元のバッチは下記のようなバッチです。 ECHO SET /P U-ID="社員番号:" >AA.BAT ECHO net user %U-ID% >>AA.BAT できたファイルで、社員番号をユーザに入力させ、net user で表示させるものです。 ただ、これを実行すると、下記のようなファイル内容になってしまいます。 SET /P U-ID="社員番号:" >AA.BAT net user >>AA.BAT (%U-ID%の部分が消えてしまう) これを回避し、作成したファイル内容が SET /P U-ID="社員番号:" >AA.BAT net user %U-ID% >>AA.BAT となるようにする方法はありませんでしょうか? 知識不足で申し訳ないですが、回避策が見つかりませんでしたので、ご教授願えれば幸いです。 よろしくお願いします。

  • Word文書の改行を無くしたい!(

    かなり長いワードの文書を印刷したいところですが、 この文書はoutlook expressのメールからwordに移しまとめたものです。 不必要な改行が多すぎて、このまま印刷掛けると、 余計沢山の枚数が掛かってしまいます(A4紙100枚位)。 (注:改行のように見えますが、でも毎行最後の文字の後ろに出るのは、普通の改行マークではなく、↓のマークです。) 改行現象さえ無くせば、枚数は半分位圧縮できそうです。 手動で1行ずつ後ろの空スペースをDelateしていくのは、大変時間掛かりますので、 ※ 置換 → 検索する文字列に^pを入力 → 置換え後の文字列には何も入力しない。 こういうふうに操作して見ましたが、「0個の検索項目がありました」との結果が出ました。 選択範囲を指定してやるようにも試みましたが、やはり同じ結果でした。 こういう情況ですので、何か処理法がありますでしょうか。 文書は全部繋がっていて読みにくくなっても構いませんから、 ご指導宜しくお願い致します。

  • 画像のファイル名の末尾の文字4文字を削除したい

    一括で、画像のファイル名の末尾の文字を削除したいと思っています。 バッチで先頭の文字4文字を削除できたのですが、 末尾の文字4文字を削除にしたいのですが、 どうすれば良いのかを教えていただけませんか。 ご教授いただけますでしょうか。 @echo off setlocal enabledelayedexpansion for /f "delims=" %%F in ('dir /b /a-d *.jpg *.png *.gif *.bmp') do ( set filename=%%~nF set extension=%%~xF rem ファイル名が4文字以上の場合にのみ先頭4文字を削除 if "!filename:~4!" neq "" ( set "tempname=!filename:~4!!extension!" rem リネーム後のファイル名が存在しない場合のみリネーム if not exist "!tempname!" ( ren "%%F" "!tempname!" ) ) else ( echo ファイル名が短すぎて変更できません: "%%F" ) )

専門家に質問してみよう