截断存储在%%变量中的值的前导字符

时间:2013-06-07 16:14:02

标签: dos

在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分配给另一个变量来对其进行截断?如果还有其他选择,我也对此持开放态度。

1 个答案:

答案 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

希望这有帮助。