
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
試験されていたバッチの問題点は"SET D:\"です。
コマンドプロンプトから"HELP SET"でSETコマンド確認して下さい。また,意図しない動きを確認するには"@ECHO OFF"を"@ECHO ON"に書き換えると動作の確認がしやすいです。
たぶん,バッチファイルの引数の引き渡しのコーディング方法がわからないのかなと考え,サンプルを付けましたので確認して下さい。
"DOSプロンプト”関係はインターネット検索すれば詳しく説明されているサイトがありますのでまずは検索して見て下さい。
■サンプルの使用方法
logfind keyword d:logfile.txt result.txt
と実行すればDドライブのカレントにあるlogfile.txtからkeywordが検索されresult.txtに結果が書き込まれます。
■サンプル
次のソースを"logfind.bat"として保存して下さい。
@ECHO OFF
IF '%1'=='' GOTO HELP
IF '%2'=='' GOTO ERROR
IF NOT EXIST %1 GOTO FILEDROP
REM %1ファイルから%2の条件で一致するものを%3ファイルにリストアップ
IF '%3'=='' GOTO STDEXE
REM 正規表現の場合 findstr %2 %1 > %3
findstr /C:%2 %1 > %3
GOTO EXIT
:STDEXE
REM 正規表現の場合 findstr %2 %1
findstr /C:%2 %1
GOTO EXIT
:FILEDROP
ECHO %1 ファイルが見つからない為,処理を中断します。
GOTO HELP2
:ERROR
ECHO 引数が足りません。
GOTO HELP2
:HELP
ECHO ログファイルから文字列を検索してリストアップします。
:HELP2
ECHO LOGFIND logFile string [outFile]
ECHO logFile 検索対象のLOGファイル
ECHO string 検索する文字列
ECHO outFile 検索結果を格納するファイル,省略した場合は標準出力
:EXIT
ECHO ON
No.2
- 回答日時:
「うまくいかない」というのは, どのような現象を意味するのでしょうか? 余人には理解できないので,
・DOSプロンプト (<コマンドプロンプトか?) ではどのディレクトリでどのようなコマンドを入力してどのような結果になったのか
・バッチファイルではどのように記述し, どのように実行してどのような (意図しない) 結果になったのか
をはっきりと書いてください.
これは, 例えば「こちらではうまくいきましたよ」と書かれても, あなたには何も分からないですよね? それと同じことです.
この回答への補足
説明不足の質問で大変申し訳ないです。気を付けます。
>>・DOSプロンプト (<コマンドプロンプトか?) ではどのディレクトリでどのようなコマンドを入力してどのような結果になったのか
DOSプロンプト (<コマンドプロンプト)です。Dディレクトリに入っているファイルをLogfile.txtです。
『D:\findstr keyword logfile.txt > result.txt』問題なし。
>>・バッチファイルではどのように記述し, どのように実行してどのような (意図しない) 結果になったのか
TEST.batの中に下記の様に記述して実行すると。
********************
@echo off
set D:\
findstr keyword logfile.txt > result.txt
pause
********************
結果は
D:\
FINDSTR: 開くことができません (logfile.txt)
表示し、txtの中身も空になっています。
No.1
- 回答日時:
検索する文字列を含む1行を保存していくことは可能です。
次の行はfindstrコマンドを使った例です。
findstr keyword logfile.txt > result.txt
"logfile.txt"ファイルから"keyword"文字列を検索して,発見した行をそのまま"result.txt"ファイルに追加していきます。※
※keyword、logfile.txt、result.txtは任意ですので環境に合わせて下さい。
尚、ちょっと気のきいた結果を残すのであればperlなどを使う方がいいと思います。
参考URL:http://ykr414.com/dos/dos02.html#09
回答ありがとうございます。Dosプロンプトでやってみて上手く行きました。バッチで書くときはどうなるでしょうか。
一応、DOSプロンプトでやった通りに書いてみたんですが、どうも上手くいきません。
その辺も教えて頂ければと思いますが、宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- フリーソフト テキストファイル内を検索したい 1 2022/06/01 08:33
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- その他(ソフトウェア) 一太郎付属の”全件検索”ツールの不具合 3 2023/07/25 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
バッチ処理でファイルの中身を...
-
多数のサブディレクトリ内のフ...
-
psqlでエラーログをとりたい
-
ファイルの最後に文字列挿入
-
バッチファイル 複数ファイル...
-
バッチファイルの修正箇所を教...
-
iPhone版Dropboxからtxtファイ...
-
拡張子を元に戻す
-
NOTEPAD.EXEが見つかりません。
-
WinAPI SHGetFileInfoでICONフ...
-
MATLABで行列を配列に格納する方法
-
ファイルの入出力
-
VBファイルを0KBにする方法
-
【エクセルVBA】エクセルからテ...
-
検索CGIでいいのを知りませんか?
-
フォルダーの中のファイルを数...
-
テキストファイルで提出とは?
-
fortran90 ファイル出力の名前
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
バッチファイル 複数ファイル...
-
psqlでエラーログをとりたい
-
ファイル内容の修正、行削除に...
-
バッチファイルで文字列削除に...
-
テキストファイルで提出とは?
-
拡張子を元に戻す
-
ファイルの最後に文字列挿入
-
UWSCでテキストファイルを開い...
-
エクセルの各セルの内容をそれ...
-
ファイル名の一部をbatで変更し...
-
renameコマンドについて
-
accessでSQL文を使ってcsvファ...
-
3つ以上のテキストファイルをコ...
-
Windowsのバッチファイルを利用...
-
ファイルのワイルドカードについて
おすすめ情報