を形成するために、変数、文字列を連結します。バッチ:私は、ユーザーがファイルへのパスを入力し、私はそのパスフォームファイル名を抽出し、バッチファイルを有する出力パス
私は、同じ名前のフォルダを作成するために、そのファイル名を使用します。そのフォルダ内の
は、私は私のバッチファイルで呼び出していますプロセスがにそのログメッセージを書き込むことができlog.txtファイルを作成したいです。ここでは、コードです:
set /p pathFoFile="Enter path fo file: "
FOR %%i IN ("%pathFoFile%") DO (
set outputFolder=%%~ni
)
someprocess -p1 blabla -p2 blabla -p3 %outputFolder% > %outputFolder%\log.txt
最後の部分、%outputFolder%\log.txt
、私はこれをエコーするとき、私はちょうど、しかし> log.txt
を入れたときにそれが動作するので、問題のようです:
echo %outputFolder%\log.txt
は、
正しいパスが表示されます。
にはどうすればフォルダ名を使用して、このlog.txtファイルを作成することができますか?
EDIT
私はこのように見えることがあり得るパス:
..\some\folder\thefile.egf
か、単に
thefile.egf
または絶対パス。
私は
thefile
を抽出して呼び出すしたいと思います:
someprocess -p1 blabla -p2 blabla -p3 thefile > thefile\log.txt
をlog.txt
を含むフォルダthefile
は、バッチファイルからの相対作成する必要があります。パスにドライブ文字がありません。 %outputFolder%\log.txt
または"%outputFolder%\log.txt"
を使用しているとき私が得る
エラーは、システムがパスを見つけることができないということです。
私は 'dir'の代わりに、' someprocess'でこの正確なスクリプトを試してみましたが、それがうまく働きました。入力したパスにはドライブ文字と後続のスラッシュは含まれていませんか? – leetibbett
私は自分の質問を編集しました。 – user3813234
私はそれを持っていると思う:フォルダは、プロセスによって作成されます。また、フォルダを作成するのに少し時間がかかります。 > folder/log.txtを実行すると、そのフォルダはまだ作成されていません。おそらくそれです。 – user3813234