1
さて、バッチで値としてフォルダの名前を取得しようとしています。フォルダには、次のようになります。フォルダー名の名前をアンダースコアで区切ってバッチで値にする方法は?
John_1
私は名前だけアンダースコアで区切られジョン部分の最初の部分を取得しようとしています。
誰でも解決できますか?
おかげ
バッチの中で最も列処理と同様さて、バッチで値としてフォルダの名前を取得しようとしています。フォルダには、次のようになります。フォルダー名の名前をアンダースコアで区切ってバッチで値にする方法は?
John_1
私は名前だけアンダースコアで区切られジョン部分の最初の部分を取得しようとしています。
誰でも解決できますか?
おかげ
バッチの中で最も列処理と同様は、FOR /F
コマンドはdelims
引数を使用して、これを行うことができます。
ここで、希望する部分は%name%
変数になります。
通常、変数には解析する文字列がありますが、ソースはありません。変数で上記を実行するには、変数echo
を使用できます。何らかの理由であなたは、文字列の第二の部分を取得したい場合
set sz=John_1
for /f "delims=_" %%a in ('echo %sz%') do set "name=%%a"
最後に、FOR
はtokens=
引数を使用することによって、それを保持するために別の変数を割り当てることができます。
set sz=John_1
for /f "tokens=1,2 delims=_" %%a in ('echo %sz%') do (set "name=%%a" & set "number=%%b")
FOR
バッチ言語の中で最も強力なコマンドの一つです。使用可能なオプションの完全なリストについては、help for
を実行してください。
@Stephanが示唆しているように、第2変数 '%% b' – Stephan
を使用するには' 'tokens = 1、*' "のようなものが必要です。' 1,2'ではなく '1、*'別のアンダースコアが含まれていると分割されない –