2016-10-21 1 views
0

Ich verwende ein Menü und möchte in eine Datei mit ausgewähltem Namen in Dropdown schreiben. Es funktioniert gut, außer der Dateiname ist falsch.So verwenden Sie Anruf-Echo in einer Zeichenfolge

Er nennt ihn "ws-% Name [2]%" und gibt nicht den richtigen Wert ein. Wie kann ich das beheben? Dank für jede Hilfe

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 

Antwort

1

Alles, was Sie tun müssen, werden, ist, dass Name und Index zu setzen, wie eine Variable und benutze das.

ist hier ein Beispiel mit ein paar Änderungen für Demonstrationszwecke:

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

Dank dieser gearbeitet hat! –

0

Erweiterung von verschachtelten Variablen verwirrend ...

statt ws-%%Name[%index%]%%.txt sein, schreiben ws-%Name[%%index%%]%.txt

Verwandte Themen