在DOS中,我试图从命令中获取输出并将其分配给变量,然后获取输出并截断字符串的前两行。以下是我要做的事情的片段:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=* delims= " %%a in ('net view') do (
set SERVER= %%a
set SERVER=%SERVER:~2
echo SERVER is SERVER
)
'net view'命令的输出将列出我网络上的服务器名称。我想删除字符串开头的双重黑色斜杠。我对%%a
变量使用截断操作没有任何好运。这是可能的,如果不可能,我怎样才能将%%a
分配给另一个变量来对其进行截断?如果还有其他选择,我也对此持开放态度。
答案 0 :(得分:0)
我没有时间来制定一个例子,但最近不得不解决类似的问题,我相信您正在寻找的功能可以在这里找到:http://www.dostips.com/DtTipsStringOperations.php
我不得不对目录中的文件进行大规模重命名,但不想重命名.txt或.bat文件 - 只是其他所有文件。
关键功能是:设置str =%str:〜-4%
使用的DOS脚本:
dir /b > filelist.txt
FOR /F "TOKENS=1 DELIMS=," %%A IN (filelist.txt) DO CALL :PARSEIT %%A
del filelist.txt
EXIT
REM: END OF PROGRAM
REM: CALL FUNCTIONS BELOW
:PARSEIT %1
set str=%1
echo.%str%
set str=%str:~-4%
echo.%str%
IF %str%==.txt GOTO :EOF
IF %str%==.bat GOTO :EOF
set str=%1
RENAME %str% %str%.txt
:EOF
希望这有帮助。