1
これは私の最初の投稿であり、バッチにはあまり熟練していないので、本当にうんざりするとすみませます。バッチエコー特定の行
基本的に、一度実行すると、ユーザーがファイルパスと行番号を入力し、指定されたファイルの指定された行がコマンドラインに出力される小さなバッチスクリプトに取り組んでいます。私はすべての変数とコマンドが動作しているので、テキストファイルの行を指定するコマンドはうまくいきます。変数を入れても機能しません。今、私は私がやっている推測しているが、私はバッチに新たなんだので、明らかに間違っているが、とにかくここに私のコードです:
@echo off
color b
:top
title specified line copy tool
echo input full path to txt file
set /P filepath=">"
cls
echo what line would you like to copy?
set /P lineoriginal=">"
set /A actualline=%lineoriginal%-1
for /F "skip=%actualline% delims=" %%i in (%filepath%) do if not defined output set "output=%%i"
echo %output%
pause
あなたは、私が間違って何をしたかの感謝を見ることができます参照してください。このリンクから
ああ、古典的な "それは動作しません "エラー。代わりに何をしていますか? – SomethingDark
引用符で囲まれたファイル名をつけると、空白が含まれている場合に実行する必要があるため、ファイルパスではなく文字列になります。この場合、 'UseBackq'オプションを使う' usebackq - 新しいセマンティクスが有効であることを指定します。ここでは、引用符で囲まれた文字列がコマンドとして実行され、引用符付きの単一の文字列はリテラル文字列コマンドであり、二重引用符file-setのファイル名を引用することができます。 ''引用符で囲まれた文字列はskipコマンドがスキップするたった1行であるため、 '%output%'は空白です。また、デバッグ時にエラーを隠すので、ファイルから 'echo off'を取り除きます。 –
@SomethingDark forループが実行されているとき、delims = "この時点では予期せぬことです。 –