このプログラムを実行しようとすると、変数が正しく設定されません。とにかく、ファイルの場所をファイルに設定するのではなく、ファイル自体を変数に設定し、それを画面に表示させるようにしていますか?関数の結果を変数に設定しようとしています
@echo off
for %%a in (d) do if exist "%%a:\" dir /b /s /a-d "%%a:\gm_construct.bsp" set p=%%~dpnxa
pause
このプログラムを実行しようとすると、変数が正しく設定されません。とにかく、ファイルの場所をファイルに設定するのではなく、ファイル自体を変数に設定し、それを画面に表示させるようにしていますか?関数の結果を変数に設定しようとしています
@echo off
for %%a in (d) do if exist "%%a:\" dir /b /s /a-d "%%a:\gm_construct.bsp" set p=%%~dpnxa
pause
あなたのコードは何:
dir /b /s /a-d "%%a:\gm_construct.bsp" set p=%%~dpnxa
リストのすべてのファイル"%%a:\gm_construct.bsp"
とset
という名前のすべてのファイルと名前のすべてのファイルp=%%~dpnxa
何(と思う)あなたがやりたい:
dir /b /s /a-d "%%a:\gm_construct.bsp"
とし、出力を変数に設定します
@echo off
for %%a in (d) do (
if exist "%%a:\" (
for /f "delims=" %%i in ('dir /b /s /a-d "%%a:\gm_construct.bsp"') do set p=%%~dpnxi
)
)
pause
一時停止
パスの後にファイル名を与える以外は、私はそれが任意のヘルプにあるフォルダに設定したいだけです。 –
'%〜dpnxi'は' %% i'の** d ** rive、** p ** ath、** n ** ame、e ** x ** tensionを意味します。だからあなたはおそらく '%%〜dpi'を望んでいます – Stephan
私はそれを考えるべきです。私はそれを理解しようと2時間を費やしました。 –
:(:
'
単一引用符の種類に注意してください)あなたのコードにを統合:
は、コマンドの出力を取得するには、別の
for
必要どの変数が正しく設定されていないのですか?それは現在設定されているもので、何を設定したいのですか? – Ruslan上記のコードの変数p。私は私のコードの他の場所でそれを使用しようとすると動作しません。私はそれがファイルではなくファイルの場所に設定したいが、それを正確に行う方法がわからず、何が設定されているのか分からない。 –
これを 'dir'コマンドの出力に設定したいのですか?コードの他のすべての部分が動作することをテストしましたか(つまり、実際にファイルを見つけたら 'dir'コマンドを実行します)? – Ruslan