2023年6月12日月曜日

2つのファイルで間違い探し|比較の方法|batファイルのエラーの例

 今回は、Windowsの場合(PCよく分かっていない人)のお話ですが、
「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

・・とかいうエラーが分からなくて長い時間かかって調べました。
目的は、

2つのテキストファイルを比較して、間違った部分を見付けたかった時に

一瞬で分かれば良いのに・・と思って調べました(よく分かっていない人間によって)。

 

1: 最初に、準備すること

先ず、必要なのは「メモ帳」
※ 今回は、windowsの作業です。


  • 「fc file1.txt file2.txt /n」とだけ入力し、ファイル名「file_compare.bat」で、保存(文字コードをANSIにする。拡張子「.txt」は削除して「.bat」にする)。
  • 「fc %1 %2 /n」とだけ、入力して、ファイル名「file_compara.bat」と、文字コードをANSIで保存。


・・という、2つのメモ帳によって作成したファイル。

更に、比較用のテキストのファイルを2つ、2つは殆ど同じで普通のテキスト(txt)、
1部分だけが違っているものが分かりやすいです。

  • file1.txt・・中身は好きな文のファイル
  • file2.txt・・上記とほぼ同じ、1文字だけは違うテキストファイル


そして、デスクトップに

  • 「bat-test(例なので名前はお好みで。分かれば何でも可。)」というフォルダ

そのデスクトップ上のフォルダ

「bat-test」の中に、上記のメモ帳で作ったファイル、4つを全て入れます。

 
お疲れ様です。

これで、半分くらいの作業は出来ました!

 

2: パスの通し方

こちら、大事なことだと思いますが、自分は余りよくわかりません。

batファイル・・ブレースフォルダによるデータ内容の文章中への動的な埋め込み?だそうです。
(多分、合っていると思います)

デスクトップへのパスの通し方

%HOMEDRIVE%%HOMEPATH%\Desktop echo\ pause exit

と、あったのですが・・これでは何だか難しくて分からないので、
実際にユーザー名などを入力して実行してみました。


コマンドプロンプトを起動(黒い画面の小さなウィンドウ)して、

@echo off
echo %~dp0
pause


cmdが起動。

「続行するには何かキーを押してください . . .」と。

分かり難いので更に


@echo off を消してみると、以下の様に表示され、

C:\Users\username\Desktop>pause 続行するには何かキーを押してください . . .


何とか、パスは通っていたみたいです。

(Desktop内で「続行するには」とあるので)


enterを押すとウィンドウは消えましたが。

一応、次の作業は出来たので、通りましたという事で終わります。

「@echo off」と入力すると、無駄な説明は消してくれるらしいので、

その実験も兼ねてです。


 

3: 実際に2つのファイルを比較出来ました!!

パスが通った確認ができたので、以下の様にします。

(ユーザー名は、usernameです。ご自分のユーザー名にして下さい。

ユーザー名がわからない場合、Microsoftは、

outlookのメールアドレスの左側で良いかと思います。殆どの場合は。。)

あと、「>」は、分かり難いので「>」と、大きくし、

入力する文字は「」で囲いました。以下が手順です。

比較の方法

キーボード操作:windowsキー(四角い4枚の窓マーク)+Rキー同時押し

「cmd」と入力。

コマンドプロンプトを起動(黒い画面の小さなウィンドウ)

C:\Users\username> ・・と、あるところで、

「cd Desktop\bat-test」 ・・と、入力、enter

C:\Users\username\Desktop\bat-test> ・・とデスクトップのbat-testフォルダへ移動した状態になります。

C:\Users\username\Desktop\bat-test>file_compare.bat %1 %2 /n ・・と入力、enter

すると、自動で以下のようになります。

C:\Users\\Desktop\bat-test>fc file1.txt file2.txt /n

ファイル file1.txt と FILE2.TXT を比較しています

***** file1.txt

17: RewriteCond %{QUERY_STRING} p=1535

18: RewriteCond %{HTTPS} on

19: RewriteRule .* https://username.blogspot.com/2023/06/tumblr.html?[R=301]

***** FILE2.TXT

17: RewriteCond %{QUERY_STRING} p=1535

18: RewriteCond %{HTTPS}

19: RewriteRule .* https://username.blogspot.com/2023/06/tumblr.html?[R=301]

*****


上記の18行目が違う・・という結果です。

この場合、「on」という文字があるかないかの違いです。

お疲れさまでした。

 

4: file_compare.bat %1 %2 /nについて・fc %1 %2 /n

勘違いしていた話です・・。

fc %1 %2 /n

を保存して名前「file_compara.bat」というファイルを

デスクトップに作る・・という説明があって、
最初はその通りに作ったのですが、エラーの時に
「あれ?「compare」じゃなかったっけ?」おかしいなと思い、

ファイル名を確認するとほかの部分は全てcompareだったので、

打ち間違いだったのかな?と、
comparaではなく、compareにしてしまいました。

しかし、そうではなくて・・

  • 「file_compare.bat」・・「fc file1.txt file2.txt /n」
  • 「file_compara.bat」・・「fc %1 %2 /n」文字コードをANSIで保存・・ブレースフォルダという別物

と、2つとも必要だったのです。

 

上記、未だに正直なところ・・、意味とか全く分からないのですが

・・念のため、覚書で残しています。

  

5: ファイルを比べたい経緯・参考・終わり

 元々は、文字数をカウントするために調べていたのですが、

コマンドを使う方法を見ていたら

テキストファイルを2つ、比べて間違った部分を探せる
・・という機能が気になり。

気になった理由は、
自分は、少しはタグを使いつつも、あんまり分かっていないので

何か不具合が出ると、どこが悪いのか・・と探すのが大変なのと、
(最近になり、ctrl+Fなどで、本文検索をすれば良いと分かりましたが。)
コピペを多用するので、コピーから失敗している可能性も高いのとで、

2つのファイルを比べられるとは便利だなと思いました。

他、wordpressやら編集画面では自動保存されたものとか時々出てきますが、
あれも「どっちが良いんだっけ?」と分からなくなったり

どこが違うのか直ぐに比較出来るのも嬉しい。

記事をザーッとスクロールすると難しい記号の羅列もなく
何やら簡単そう(失礼)に見えたので、

やってみたくなりましたが・・。
いきなりエラー。

動かなかった話

内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

 

この場合、どうするのかと調べるとLinuxと同じで・・

コマンドなどが認識されていない・・どこかでDL、インストール?かと思いましたが、

そこはwindowsなので装備済でした。。

c:\users\○○>_

となってる所で、

c:\users\○○>path

としてみると、現在pathが通ってるフォルダが、「;」で区切って、表示されます。

上記、やってみると、ダ~っとパソコンのフォルダ名が並んでいましたが。

これは、意外に時間かかるかも・・。(5時間かかりました。)

実際に行った方法を事例として残しているので、
同じような間違い・勘違いをした場合は参考にして頂けます。

ここまで読んでいただいて、ありがとうございました。

いかがでしたでしょうか。

何か少しでも参考になれば幸いです。

よろしければ、他の記事も気が向いた方は読んでやってくださいませ。

よろしくお願いいたします・・。

参考サイト:

バッチファイル自身のパスを取得する方法 | Correct-Log —コレログ—
https://correct-log.com › bat_get_cd

バッチファイルでデスクトップを呼び出すには
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1447443134

「Document Star 契約書管理システム 」 - ダウンロード - 無料 ...https://www.soft222.com › document-star-契約書管理システム

batファイルの動作について
https://answers.microsoft.com/ja-jp/windows/forum/all/bat%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE/13b197d3-0ffe-4a84-961f-c54aca617c5e

batファイルのカレントディレクトリの取得方法
https://qiita.com/shin1rok/items/efb5052ef5fb8138c26d

バッチファイル基礎文法リファレンス
https://qiita.com/kshibamo/items/9368b0b2a4a2f40b61f1

バッチファイルの基本的な書式と考え方
https://qiita.com/go1101/items/a2df957120b709b94273

.bat初心者・未経験者に贈るコマンド集
https://qiita.com/plcherrim/items/4432263ef34418175fa9

他の参考サイトはリンク切れのため削除しています。

0 件のコメント:

コメントを投稿

読んでくださって、ありがとうございます。お気軽にコメントして頂けると嬉しいです。返事は90%くらいお返ししますが、めちゃくちゃ遅い場合があります。気長にお待ちください。

VentoyかRufusはどっちが良いのか試したけど・・(古いWindowsソフトが使いたい)

 今回はWindowsXPのソフトを動かしたく(32bitのisoファイルを作成する為) 古いlinuxのインストールについて調べたお話です。←結局は止めました。 実は何年も前から何度も途中まで試しては挫折しております。 インストール出来ても結局は動きませんでした&...