0

谢谢内特。有用。
但现在我需要此脚本的输出变量以供以后使用。
我需要2个输出。首先是作为整数输出的计数变量,其次是字符串变量,它等于“word”中的最后一个字符串字符。
所以,我需要这 2 个变量,正如您在“按任意键继续...”之前在完成脚本的最后一行中看到的那样。
1 个最后一个整数变量和 1 个最后一个字符串变量。

我需要这 2 个变量以供以后在此脚本中编写脚本。
我怎么能拥有它?这是一个从昨天开始工作的脚本。

@ECHO OFF
:input
set /p word=input your word:
if not defined word goto input
(ECHO %word%)> tempfile.txt
FOR %%x IN (tempfile.txt) DO ( SET /A lenght=%%~zx - 2 )

del tempfile.txt
echo %word% got %lenght% characters
setlocal enabledelayedexpansion

for /l %%m in (1,1,!lenght!) do (
  set /a count=%%m
  set /a index=%%m-1
  call echo !count! %%word:~!index!,1%%
) 

(call echo %%word:~!index!,1%%)>tf.txt


for /f "tokens=*" %%a in (tf.txt) do (
set line=%%a
set char=!line:~0,1!

)

pause

echo %count% %char%

endlocal

pause
4

2 回答 2

2

这里记录了很多方法来展示如何做到这一点,但这endlocal & set global=local是我最喜欢的。

从我认为你想要的来看...

setlocal enabledelayedexpansion
for /l %%m in (1,1,!lenght!) do (
    set /a count=%%m
    set /a index=%%m-1
    call echo !count! %%word:~!index!,1%%
    set laststring=%word:~!index!,1%
) 
(
    endlocal
    set count=%count%
    set laststring=%laststring%
)
于 2013-04-06T09:00:27.443 回答
1

试试这个技术来拆除setlocal enabledelayedexpansion/的墙endlocal

@echo off&setlocal
set "word=abcdefghij"
set /a lenght=10

for /l %%m in (1,1,%lenght%) do (
    set /a $count=%%m
    set /a index=%%m-1
    setlocal enabledelayedexpansion
    call echo !$count! %%word:~!index!,1%%
    call set "$laststring=%%word:~!index!,1%%"
    for /f %%i in ('set $') do (if "!"=="" endlocal)& set "%%i"
)
echo( 
echo !$count! !$laststring!
echo %$count% %$laststring%

来源

于 2013-04-06T18:37:06.963 回答