正しくコマンドから結果をバッチで正しく切り取る方法はありますか?このバッチを実行した後、私は3210の代わりに、私は間違いをした"arch"
を受ける「にwhoami」は「europe\archont"
を返す私の場合コマンドからバッチ処理結果の文字列を
@ECHO OFF
FOR /F "tokens=* USEBACKQ" %%F IN (`whoami`) DO (
@ECHO %%F%:~7,4%
)
ENDLOCAL
正しくコマンドから結果をバッチで正しく切り取る方法はありますか?このバッチを実行した後、私は3210の代わりに、私は間違いをした"arch"
を受ける「にwhoami」は「europe\archont"
を返す私の場合コマンドからバッチ処理結果の文字列を
@ECHO OFF
FOR /F "tokens=* USEBACKQ" %%F IN (`whoami`) DO (
@ECHO %%F%:~7,4%
)
ENDLOCAL
あなたがいない持っている場合:私はそのようなことを書きましたの? For
ループ内でさらに機能します:
固定文字列の長さに、ちょうど区切り文字として\
を使用します。必要なときに
for /f "tokens=2 delims=\" %%F in ('whoami') do set "im=%%F"
、あなたはそれをカットすることができます。
echo %im:~,4%
トークンの数を指定したり、区切り文字を指定する必要はありません... _私の答え_ – Compo
あなたが唯一の環境変数のサブ文字列を行うことができます。 FOR変数では実行できません。最初にFOR変数を環境変数に割り当て、次にFORコマンドの外部で部分文字列を実行します。 – Squashman