如何正確地批量切割命令的結果?我寫了這樣的事情:來自命令的批量切割結果字符串
@ECHO OFF
FOR /F "tokens=* USEBACKQ" %%F IN (`whoami`) DO (
@ECHO %%F%:~7,4%
)
ENDLOCAL
在我的情況「WHOAMI」返回「europe\archont"
運行這個批處理後,我收到的3210代替"arch"
如果我做了錯誤
如何正確地批量切割命令的結果?我寫了這樣的事情:來自命令的批量切割結果字符串
@ECHO OFF
FOR /F "tokens=* USEBACKQ" %%F IN (`whoami`) DO (
@ECHO %%F%:~7,4%
)
ENDLOCAL
在我的情況「WHOAMI」返回「europe\archont"
運行這個批處理後,我收到的3210代替"arch"
如果我做了錯誤
如果你有沒有?在您的For
迴路內執行的其他功能:
@Echo Off
For /F "Delims=" %%A In ('WhoAmI') Do Set "IAm=%%~nxA"
Echo(%IAm:~,4%
Timeout -1
而不是依靠固定字符串長度,僅僅使用\
作爲分隔符:
for /f "tokens=2 delims=\" %%F in ('whoami') do set "im=%%F"
在需要的時候,你可以切說:
echo %im:~,4%
我不認爲有必要規定令牌的數量或提供分隔符......請參閱我的答案_ – Compo
你只能做一個環境變量的子字符串。你不能在FOR變量上做。首先將FOR變量分配給環境變量,然後執行FOR命令之外的子字符串。 – Squashman