简体   繁体   English

如何在字符串中使用呼叫回显

[英]How to use call echo in a string

I am using a menu and want to write to a file with selected name in dropdown. 我正在使用菜单,并想在下拉列表中写入具有选定名称的文件。 It's working fine except the file name is incorrect. 除文件名不正确外,一切正常。

It's naming it " ws-%Name[2]% " and not putting the correct value in. How can I fix this this? 它将其命名为“ ws-%Name [2]%”,但未输入正确的值。如何解决此问题? thanks for any help 谢谢你的帮助

ECHO OFF
CLS
:MENU
ECHO.
ECHO ...............................................
ECHO Select Postroom staff:-
ECHO ...............................................
ECHO.

set "Name[1]=Diana Mckinley"
set "Name[2]=Lenka Smolkova"
set "Name[3]=Louise Smith"
set "Name[4]=Sally Baldwin"
set "Name[5]=Sally Faulkner"
set "Name[6]=Sarah Kendle"
set "Name[7]=Sophie Jennings"
set "Name[8]=Steven Caylor"

:MenuLoop
set /a "x+=1"
if defined Name[%x%] (
    call echo   %x%. %%Name[%x%]%%
    goto MenuLoop
)

ECHO.

SET /P index=Type KEY then press ENTER to register:

call echo %%Name[%index%]%% is now registered

call echo %%Name[%index%]%% > "C:\Users\karim ali\Documents\Test\ws-%%Name[%index%]%%.txt"

GOTO MenuLoop

All you'll need to do is to set that name and index as a variable and use that. 您需要做的就是将名称和索引设置为变量并使用它。

Here is an example with a few changes for demonstation purposes: 这是一个示例,为演示目的进行了一些更改:

@ECHO OFF
SET "Name[1]=Diana Mckinley"
SET "Name[2]=Lenka Smolkova"
SET "Name[3]=Louise Smith"
SET "Name[4]=Sally Baldwin"
SET "Name[5]=Sally Faulkner"
SET "Name[6]=Sarah Kendle"
SET "Name[7]=Sophie Jennings"
SET "Name[8]=Steven Caylor"

:MENU
CLS
ECHO.
ECHO ...............................................
ECHO Select Postroom staff:-
ECHO ...............................................
ECHO.

:MenuLoop
FOR /F "TOKENS=2-3 DELIMS==[]" %%A IN ('SET Name[') DO (
    CALL ECHO   %%A. %%Name[%%A]%%)
ECHO.
SET /P index=Type KEY then press ENTER to register:
CALL SET "PRSName=%%Name[%index%]%%"
ECHO.
ECHO %PRSName% is now registered
TIMEOUT 2 /NOBREAK 1>NUL
ECHO %PRSName%>"C:\Users\karim ali\Documents\Test\ws-%PRSName%.txt"
SET "Name[%index%]="
SET Name[>NUL 2>&1&&(GOTO :MENU)

expansion of nested variables can be confusing... 嵌套变量的扩展可能会令人困惑...

instead of ws-%%Name[%index%]%%.txt , write ws-%Name[%%index%%]%.txt 代替ws-%%Name[%index%]%%.txt ,写成ws-%Name[%%index%%]%.txt

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM