をset g=!f:~0,3!
コマンドプロンプトウィンドウを開き、set /?
を実行し、部分文字列参照と遅延拡張について説明する出力ヘルプを参照してください。 setに関するSS64の記事とsetに関するMicrosoftの記事もご覧ください。
set g=!f:~0,3!
は、遅延環境変数展開を使用して、環境変数g
に環境変数f
の最初の3文字を割り当てます。
2>nul
の説明については、Microsoftの記事Using command redirection operatorsを参照してください。このコードは、2番目の標準ハンドル(stderr)に書き込まれたすべてのメッセージをデバイスnul
にリダイレクトします。つまり、すべてのエラーメッセージの出力はこのコードによって抑制されます。
コマンドmd
(makeディレクトリ)は、作成するディレクトリがすでに存在する場合、エラーメッセージをstderrに出力します。 md "!g!" 2>nul
のための別の解決策は、あなたのバッチコードで使用するコマンドを理解するための
if not exist "!g!\*" md "!g!"
ことと、彼らがどのように動作するか、コマンドプロンプトウィンドウを開き、そこに以下のコマンドを実行し、完全にコマンドごとに表示されているすべてのヘルプページを読んでいましたが非常に注意深く
for /?
md /?
move /?
set /?
setlocal /?
これは非常に広いです - ここの人々は、無努力で単なるコードの説明サービスとして扱われて好きではありません質問者から。あなたが理解していると確信しています。これらのコマンドのほとんどは、簡単にグーグルにすることができます。問題のある部分を明確にすることはできますか?それは 'g =!f:〜0,3!'ビットですか? (私もそれで混乱するだろう) –
はい!その部分と '2> nul ' – jirostatic
あなたが説明したいビットであることを編集して明確にするかもしれません。 –