0

在 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给另一个变量来代替它进行截断?如果有其他选择可以做到这一点,我也对此持开放态度。

4

1 回答 1

0

我没有时间制定一个例子,但最近不得不解决一个类似的问题,我相信你正在寻找的功能可以在这里找到:http: //www.dostips.com/DtTipsStringOperations.php

我不得不对目录中的文件进行大量重命名,但不想重命名 .txt 或 .bat 文件——只是其他所有文件。

关键函数是:set 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

希望这可以帮助。

于 2014-01-24T23:13:46.413 回答