0

ありがとうネイト。できます。
しかし今、このスクリプトが後で使用するための出力変数が必要です。
私が必要とする2つの出力があります。1 つ目は整数出力としてのカウント変数、2 つ目は「単語」の最後の文字列文字に等しい文字列変数です。
したがって、「続行するには任意のキーを押してください...」の前に、完成したスクリプトの最後の行に表示されるように、この 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 に答える