lasky94
Goto Top

Variabel Weiterleitung zu Variabel CMD

Sehr geehrte Administratoren

Ich bin an einen Projekt dran, welcher ich wegen einen Fehler nicht weiterkomme.
Ich mache gerade einen Skript, welche die Image von der Externe Harddisk zu USB Kopieren sollte.
Leider komme ich nicht weiter bei dieser stelle:
93d6a21655fa5e48e68d0daa15180ac4

Das ist noch der Code von den Skrips:
Hauptskript:
@echo off &setlocal
:first
ECHO sind sie beim Kund? (j / n)
SET /p wahl=
if '%wahl%' == 'n' goto SelectEXT  
if '%wahl%' == 'j' goto IMGLADEN  
:SelectEXT
set "name=Images"  

for /f %%i in (
  'wmic logicaldisk where "drivetype=3 and volumename='%name%'" get deviceid /value'  
) do for /f %%j in ("%%i") do set "%%j"  


echo %deviceid%
%deviceid%
cd\
GOTO STARTCP

:STARTCP
@echo off
SET img=Images
SET EX=exit
for /f "tokens=*" %%e in ('dir verzeichnis.bat /s /b /o') do call %%e  

echo   EX  - Exit
echo.
echo -------------------------------------------------------------------------------
echo.
set "index="  
set /p index=code: 



if %index% NEQ  (


	if /i %index% == EX GOTO END

	call %img%\%index%



) ELSE ( goto Err )


:Err
echo Den %index% Code wurde nicht gefunden.
echo Bitte versuchen sie es noch einmal
Goto SelectEXT

:END
Echo Ordner wurde erfolgreich auf X Kopiert

Skript zum Suchen: verzeichnis.bat
@echo off
REM Test

SET t=\test\copyx.bat
set v=\img
echo   t - test

Skript zum Kopieren: copyx.bat
@echo off
REM Ghost 32 Ver 8.0

xcopy %v% X:\%v%\ /E

Das Problem ist, das die Variabel index nicht weiter gegeben wird als Variabel T

Ich bedanke mich für eure Informationen

Content-ID: 231085

Url: https://administrator.de/contentid/231085

Ausgedruckt am: 08.11.2024 um 08:11 Uhr

SlainteMhath
SlainteMhath 26.02.2014 um 15:20:09 Uhr
Goto Top
Moin,

was genau soll denn passieren?

set /p index=code:  
...
call %img%\%index% 
Für index wird "t" eingegeben, und dann mit Versucht %img%\%index% auszuführen - was wegen fehlender Datei "t" fehlschlägt...

Für mich zum Verständnis: Was genau soll in der Zeile
for /f "tokens=*" %%e in ('dir verzeichnis.bat /s /b /o') do call %%e   
geschehen?

lg,
Slainte
Lasky94
Lasky94 26.02.2014 um 15:30:41 Uhr
Goto Top
for /f "tokens=*" %%e in ('dir verzeichnis.bat /s /b /o') do call %%e   
mit diesem Befehl durchsuche ich die Harddisk, damit ich die Datei verzeichnis.bat finde. Danach öffnet sich das Skript welcher 2 Variabel einsetzt und mir auf dem CMD eine Auswahl bringt mit echo.
set /p index=code:  
...
call %img%\%index% 
Bei diesem abteil, gebe ich das ausgewählte Objekt an und von hier an an greift es zu einen Batch File welche sich im Verzeichnis %img%\%index% befindet.
Das Problem ist, dass ich die Variabel index t beinhaltet und mir nur t ausgibt und nicht wie ich es gerne haben würde der Pfad, welcher sich in der Variabel T befindet
SET t=\test\copyx.bat 
set v=\img 
SlainteMhath
SlainteMhath 26.02.2014 aktualisiert um 15:39:50 Uhr
Goto Top
Ok, jetzt hab ichs begriffen face-smile

Was du brauchst ist ein
set /p index=code:
...
(aufruf "Verzeichniss.bat")  
...
CALL SET _tmp=%%%index%%%
call %img%\%_tmp% 

/EDIT: Quelle: http://ss64.com/nt/call.html
Lasky94
Lasky94 26.02.2014 um 15:44:16 Uhr
Goto Top
Vielen Dank etnlich einen schritt weitergekommen face-smile