- 締切済み
バッチファイルで文字列削除について
バッチファイルで文字列削除について 以下の出力結果のファイルの中身です a.txt "DisplayName"="xxxxxxxxxxxxxx" "DisplayName"="と最後の"の部分を削除したいのですが Googleで色々調べたのですが、わかりません。 勉強不足で申し訳ありませんが、教えて頂けたら幸いです。 よろしくお願いします。
- hironona
- お礼率33% (20/60)
- その他(プログラミング・開発)
- 回答数3
- ありがとう数1
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- pita-gora
- ベストアンサー率70% (102/145)
No.1です。No.2さんがご指摘の通り、callを使わなくても可能でした。 以下のとおり訂正しますね。 echo off for /f "tokens=2 delims==" %%a in ( a.txt ) do set ans=%%~a echo %ans%
- 0909union
- ベストアンサー率39% (325/818)
条件になっているかどうか微妙? DisplayNameが何回出現するかどうか予測できるかどうかで変わると思う。つまり、値に何が含まれているかは、予期しない値であれば、取得すにあたいしないものと、通常かんがえるのが普通。それでIFで条件分岐をつけるかどうか決めるといいでしょう。 せっかく提示してくれたので、それを使って、 for /f "usebackq tokens=2 delims==" %a in (`findstr /r "\<DisplayName\> \<=\>" a.txt`) do (set att=%~a) echo att=[%att%] と言う感じですかね。findstr の正規表現等を使うことで、対象を絞ることと、その後、IF文を使えばもっと絞れます。 ラベルに飛ばしてから、設定するのは必要ない。for ループが終了すれば、attにセットされている。使うときは、forループのその変数を別トランザクションで処理をする時だけ。
- pita-gora
- ベストアンサー率70% (102/145)
a.txtの条件がはっきりしないですがサンプルを作ってみました。 a.txt には "DisplayName"="xxxxxxxxxxxxxx" の1行だけで、xxxxxxxxxxxxxxの部分を取り出したい。 xxxxxxxxxxxxxxは長さや内容が不定(ただし、=や"などは含まれない)という条件です。 環境変数 ans に取り出した文字列が入っています。 :------------------------------------------------------------------ echo off for /f "tokens=2 delims==" %%a in ( a.txt ) do call :sub %%a echo %ans% exit /b :sub set ans=%~1 goto :EOF
関連するQ&A
- バッチファイルでの特殊文字列削除方法
バッチファイルでの特殊文字列削除についてです。 count.txt "2011/05/23 11:54 xxxxxxxxxxxxxxx" の一行のみ格納してあります。 最初と最後の””(ダブルクオート) のみ削除し上書き保存したいです。 できれば外部ソフトを使わずにバッチ処理で解決したいです。 いろいろ調べましたがうまく削除できないため 教えていただきたいと思います。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 複数のファイルに同じ文字列を自動入力するバッチ
複数のテキストファイルに同じ文字列を入力して保存するバッチを作成したいです。 テキストファイル1.txt テキストファイル2.txt テキストファイル3.txt 上記3つのテキストファイルがあったとしてバッチを起動すると 同じ文字列のデータを自動的に入力したい。 自動入力する文字列:あいうえお そもそも実現可能なのかもよくわかっていませんが ご教示いただけますと幸いです。
- ベストアンサー
- Windows系OS
- バッチファイルで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
- ベストアンサー
- その他([技術者向] コンピューター)
- バッチファイル テキストファイル内の最後の\以下を削除したい
バッチで、あるテキストファイル内の最後の\以下を削除して、その結果をバッチの値として利用したいです。 ●テスト条件 %TEMP%のtest.txt に以下のテキスト。 C:\Program Files\software\top xyz ●求める結果: 行末から最初の\以下の文字列を削除。この文字列をバッチファイルで使いたい。 C:\Program Files\software\ ●試したコマンド: なし 全体の流れとしては、バッチでquery取得したパスの不要な部分を削除して、求まったパス(のdirの結果を出力するために)を再度バッチで利用したいです。適切なコマンド・方法がありましたらお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- バッチファイルでテキストファイルの文字列を取得したい
すみません、どなたか教えて下さい。 バッチファイル(test.bat)内で、他のテキストファイル(ok.txt)の文字列を取得したいです。 ok.txtは 20070614 TEST となってます。 この2つの文字列をそれぞれで取得する方法を教えて下さい。 よろしくお願い致します。
- ベストアンサー
- Windows系OS
- コマンドプロンプトで指定した文字列を削除
デスクトップ上にtest.txtのファイルがあり、txtファイルの中身はわからないと仮定します。 そのtxtファイルの中の「abc」という文字列全てを削除する場合のコマンドを教えてください。 要は指定した文字列全てが削除できれば良いです。 以上、よろしくお願いいたします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 2つのファイルを用いた文字列置換(削除)の方法
こんにちは。 テキストファイルA.txtに、検索したい文字列を1行ずつ入れておき、別のテキストファイルB.txtのうち、A.txtにある文字が含まれている行を削除するという作業をしたいです。 例えば A.txt AAA BBB B.txt hoge hogeAAAhoge hogeBhoge hogeBBBhoge の場合、 hoge hogeBhoge を出力させたいです。 このような処理ができる方法はないでしょうか?(コマンドやプログラム等)
- ベストアンサー
- その他([技術者向] コンピューター)
- コマンドプロンプトのバッチファイルでテキストファイル内の文字列を抜き出したい
コマンドプロンプトのバッチファイルでテキストファイル内の文字列から何文字か抜き出すにはどうすればよいですか? たとえば,abcde****** のようにその行の最後から6文字目までとか。
- 締切済み
- その他(ITシステム運用・管理)
- バッチファイルで文字列を順番問わずマッチさせたい
バッチファイルで、2個以上の文字列を順番問わずマッチさせたいと考えています。 例えば、 「111 222 333 444 555 666 777」 という内容のテキストファイルがあったとして、 sedコマンドを使って 「222」と「444」と「666」が この順番で含まれている行を置換したい場合、 sed -e "s/.*222.*444.*666.*/置換後の文字列/" in.txt > out.txt とすれば、問題なく置換されると思います。 しかし、上記の例では、 「777 666 555 444 333 222 111」 という内容のテキストファイルは置換されません。 文字列の順番を問わず、 「222」と「444」と「666」が含まれている行ならば、 その行を置換する、といった事は出来ないでしょうか。 sedコマンド以外でも構いませんので、何かいい方法をご存知の方がおられましたらお教え頂けないでしょうか。
- ベストアンサー
- その他(プログラミング・開発)
- 検索文字列以外のファイル
テキストファイルの中身を検索して、その文字列以外のファイル名を取りたいのです。具体的には、 【A.txtの中身】 123 abc 【B.txtの中身】 111 abc 【C.txtの中身】 222 abc このようなテキストファイルの中身を検索して、文字列「123 abc」以外が書かれているファイル名(つまり、B.txt、C.txt)を取得したいのですが、findstrやForなどを駆使すれば、できますでしょうか?
- ベストアンサー
- その他(プログラミング・開発)