1

さて、基本的には、プレーンテキストのメモ帳ファイルにリンクの完全なリストがあり、各リンクは別の行にあります。私がやりたいのは、各リンクの前に少しのテキストを追加することだけです。具体的には、127.0.0.1 といくつかのスペースです。

したがって、この...

somelink.com 

こうなる…

127.0.0.1     somelink.com 

ここまでで、私がテキスト ファイルの内容を編集して、Windows で HOSTS ファイルとして使用できるようにしようとしていることは既におわかりでしょう。

したがって、基本的にメモ帳のテキストファイルを読み取り、テキストを含む各行の先頭に「127.0.0.1」を追加する.batファイルで実行可能なバッチファイルコードが必要です。これはおそらく、MS DOS とバッチ ファイルのコードについてある程度の知識がある人にとっては非常に単純なコードだと思いますが、それは間違いなく私ではありません。

これについて事前にすべての助けをありがとう、本当に感謝しています。

4

3 に答える 3

5

読んHELP FORでから、コマンドプロンプトでこれを試してください

  FOR /F "delims=" %a in (input.txt) do @echo 127.0.0.1   %a >>output.txt

もう少し完全な機能で拡張してBATファイルに入れるための説明と考慮事項を次に示します

  1. FOR は、入力テキスト ファイルの行を反復処理するコマンドです。http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/for.mspxでマイクロソフトのドキュメントを参照してください。

  2. input.txtドメイン名のリストを含むテキスト ファイルです。現在のディレクトリに存在する必要があります。

  3. output.txt127.0.0.1 で始まるドメイン名のリストを含む結果ファイルになり、現在のディレクトリに作成されます

  4. BAT ファイルを作成する場合は、FOR コマンドを移動して少し編集し、%aループ変数名を%%a.

  5. 次に、BAT ファイルを、入力が存在し、出力が作成される現在のディレクトリに配置できます。

  6. または、別の場所に BAT ファイルを配置することもできます。その場合、フルパスで呼び出す必要があります。

  7. または、それを特別なディレクトリ (私は独自のものを持っていますC:\Program Files\CMD) に配置して、PATH システム変数に追加することもできます。ここ www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/path.mspx?mfr=true を参照して、現在のセッションの PATH を変更する方法を確認してください。そして、ここ ss64.com/nt/path.html で、PATH の変更を永続的にする方法についての説明が見つかるかもしれません。

  8. input.txtまた、定数とファイル名を使用する代わりに、BAT ファイルの最初と 2 番目のコマンド ライン パラメータを表すandoutput.txtに置き換えて、BAT ファイルにある程度の柔軟性を追加したくなるかもしれません。%1%2

  9. ユーザーは、ファイル名に空白を含むファイルを使用したい場合があります。名前を引用符で囲んで指定する場合があります"usebackqその場合、ユーザーが引用符を使用したときに混乱を招かないように、FOR コマンドに呪文を追加する必要があります。

  10. 最後に、出力テキスト ファイルが既に存在する場合にどうするかを決定する必要があります。上書きを防ぐことを検討することをお勧めします。

これらすべての要素をまとめた短い BAT ファイルは、次のとおりです。

    @echo off
    if .%2==. goto help
    if not exist %1 goto helpno1
    if exist %2 goto helpalready2
    FOR /F "usebackq delims=" %%a in (%1) do @echo 127.0.0.1   %%a >>%2
    goto :eof
    :help
    echo you need to specify input and output text files
    goto :eof
    :helpno1
    echo %1 not found
    goto :eof
    :helpalready2
    echo %2 already exist
    goto :eof

BAT プログラミングへようこそ。

于 2012-02-05T21:27:59.927 に答える
3

さあ行こう!

(
Set /p line1=
Set /p line2=
Set /p line3=
Set /p line4=
)<Filename.txt
echo 127.0.0.1    %line1%>Filename.txt
echo 127.0.0.1    %line2%>>Filename.txt
echo 127.0.0.1    %line3%>>Filename.txt
echo 127.0.0.1    %line4%>>Filename.txt

これにより、テキスト ファイルの最初の 4 行が読み取られ、内容が入力され、各行が元の行に戻されます。楽しんで!

于 2012-12-13T22:15:10.547 に答える
0

PA.の回答に加えて、特定の数のスペースが必要な場合は、それらを変数にスローしてコマンドに追加することもできます。

  SET spaces=          # to the left is 10 spaces
  FOR /F "delims=" %a in (input.txt) do @echo 127.0.0.1%spaces%%a>>output.txt

したがって、出力は次のようになります

127.0.0.1          somelink.com

バッチファイルのフレーバー:

  SET spaces=          # to the left is 10 spaces
  FOR /F "delims=" %%a in (input.txt) do @echo 127.0.0.1%spaces%%%a>>output.txt
于 2012-02-06T16:15:02.093 に答える