バッチスクリプトを使用して、テキストファイルから特定の単語を読み取る必要があります。2行目の単語3を読みたいとしましょう。
コードは次のとおりです::
@ECHO OFF
cls
SET /P line=Please enter Line number:
ECHO Line number entered is : %line%
SET /P word=Please enter Word number:
ECHO Word number entered is : %word%
FOR /F "tokens=%word% skip=%line% delims=," %%G IN (E_dir.txt) DO echo Chosen word is: %%G
問題は、これにより2行目から始まる3番目の単語がすべて表示されることです(たとえば、ユーザー入力は1行目、単語3です)。行数に問題がありますが、対応できます。私の問題は、2行目と3番目の単語の1つの単語だけが必要なときに、すべての単語を私に与えることです。
入力ファイル: E_Dir.txt
January,Snowy,02
February,Rainy,15
March,Sunny,25
April,Test,20
出力:
Please enter Line number: 1
Line number entered is : 1
Please enter Word number: 3
Word number entered is : 3
Chosen word is: 15
Chosen word is: 25
Chosen word is: 20
期待される出力:
Please enter Line number: 1
Line number entered is : 1
Please enter Word number: 3
Word number entered is : 3
Chosen word is: 15
方法最初の..。
FOR /F "tokens=%word% skip=%line% delims=," %%G IN (E_dir.txt) DO echo Chosen word is: %%G&goto nextline
:nextline
方法2番目..。
set showme=Y
FOR /F "tokens=%word% skip=%line% delims=," %%G IN (E_dir.txt) DO if defined showme set showme=&echo Chosen word is: %%G
修正
SET /a showme=line-1
SET showme=skip=%showme%
IF %line% equ 1 set "showme= "
FOR /F "tokens=%word% %showme% delims=," %%G IN (E_dir.txt) DO if defined showme set showme=&echo Chosen word is: %%G
ここで、%line%
は1でshowme
あり、意図的にSPACEに設定されていることに注意してください。これにより、showme
が最初に値を持つことが保証されます。
あなたの迷い「2」がどこから来ているのかわかりません。手順は私のために働いた。おそらく、16進エディタでソースファイルを確認することをお勧めします。LFのないラインがある場合があります。おそらくあなたのバッチもチェックしてください。NOTEPADを使用したことがある場合は、EDITPLUSやNOTEPAD ++などのエディターを試してください。メモ帳はいくつかの奇妙なことをします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加