【问题标题】:How to use call echo in a string如何在字符串中使用调用回声
【发布时间】:2017-03-03 14:44:57
【问题描述】:

我正在使用一个菜单并想在下拉列表中写入一个具有选定名称的文件。它工作正常,只是文件名不正确。

将其命名为“ ws-%Name[2]% ”,但没有输入正确的值。 我该如何解决这个问题?感谢您的帮助

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

【问题讨论】:

    标签: batch-file cmd menu set call


    【解决方案1】:

    您需要做的就是将该名称和索引设置为变量并使用它。

    下面是一个示例,为了演示目的进行了一些更改:

    @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)
    

    【讨论】:

      【解决方案2】:

      嵌套变量的扩展可能会令人困惑......

      不要写ws-%%Name[%index%]%%.txt,而是写ws-%Name[%%index%%]%.txt

      【讨论】:

        猜你喜欢
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多