2016-07-30 6 views
1

Also ich versuche, ein Array mit Batch, ich weiß, primitive, aber ich lerne Code von Grund auf, so Batch ist etwas, ich würde sehr viel zu lernen, bevor ich springen, um etwas anderes, sowieso, ich weiß, ich ein Array erstellen kann mit dieser Syntax:Batch-Datei Array-Erstellung/Änderung

@echo off set a[0] = 1 set a[1] = 2 set a[2] = 3 set a[3] = my input variable here

Meine Frage ist, wie kann ich eine neue Zeile zu dem Array hinzufügen oder ändern Sie eine vorhandene Benutzereingabe verwenden?

Ich meine, ich möchte eine Benutzereingabevariable als neue Zeile verwenden oder eine vorhandene Zeile auf dem Array ändern!

+2

Nein, nein, NEIN! ".bat" -Dateien sind bestenfalls ein "notwendiges Übel". Das Lernen von .bat-Dateien ist einfach der SCHLECHTE Weg, "Programmierung" zu lernen. Wenn Sie etwas in Windows brauchen ... würde ich C#, VBScript oder Powershell empfehlen. Im Allgemeinen würde ich Sie ermutigen, C, Java, Swift, C# oder Python zu versuchen. – paulsm4

+0

ok, ich benutze Notepad ++, ich weiß ein bisschen C, nur Grund, warum ich nicht kompilieren in C ist, weil ich nicht wirklich einen C oder C++ Compiler als .exe kompilieren, irgendwelche Empfehlungen? – Wolf

+1

Traditionelle "Anfängersprachen" sind Java und Python. – SomethingDark

Antwort

0

so fand ich, was ich auf einem DOS-Forum benötigt, war es ziemlich einfach:

< myfile.txt ( set /p line1= set /p line2= set /p line3= set /p line4= set /p line5= ) set line

Ich möchte noch einige Dinge ändern, wie die automatische Zeilenzahl Schritt hinzugefügt, so Immer wenn eine neue Zeichenkette zur Textdatei hinzugefügt wird, wird automatisch eine neue Zeichenkette (set/p Zeile "n" =) erstellt, so dass sie jetzt genau so funktioniert, wie ich möchte. Sie liest jede Zeile der angegebenen Textdatei und Orte es auf einer Variablen auf der Liste, einmal ist da, ich kann die Variable für was auch immer ich brauche, nicht genau ein Array, aber nahe genug, nur Ding, wenn Sie nicht implementieren "automatische Zeileninkrement" müssen Sie manuell erstellen die leere Variable, wie ich auf dem Codebeispiel oben getan habe, können Sie sehen, ich schrieb bis zu "5 Variablen" also, wenn Sie eingeben ein 6., wird es immer noch zu der Textdatei hinzufügen, aber das Skript wird es nicht auflisten, daher die Notwendigkeit, die leeren Variablen automatisch zu inkrementieren.

0
set /p A[0]=Enter line to replace A[0] 

Ist wie.

Hier ist ein Link, der zeigt, wie man VB.NET-Programme ohne zusätzliche Tools erstellt, als das, was mit Windows kommt.

How to find the window Title of Active(foreground) window using Window Script Host

+0

danke Jungs, ich mag nur kleine Skripte auf Stapel schreiben, da es eine Schnittstelle zu etwas Ebene ohne GUI bietet, ich benutze es für kleine Zeit Zeug wie automatische Backups, offene Verknüpfungen und jetzt im arbeiten an Passwortverschlüsselung, die es bekommen arbeiten, und dieses Array-Element wird ein Teil davon sein, ich weiß, ich kann immer noch Sachen in C schreiben und als .exe kompilieren, aber da ich keinen Compiler hatte, habe ich gerade Batch-Skripte geschrieben – Wolf

+1

Aber du haben einen Compiler, insgesamt 18 - JS, C#, VB.NET mit 6 Versionen von jedem Compiler, ist es in Windows eingebaut. Alle Compiler sind hier C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 'CSC' ist C# und' VBC' ist VB.net. –

1

Dies ist ein Beispiel, Ihnen zu zeigen, wie ein Array mit set /p Befehl erstellen und füllen und wie der Wert eines Elements in das Array ändern!

@echo off 
setlocal enabledelayedexpansion 
Set "StartIndex=0" 
Set "EndIndex=3" 
Rem To populate the array 
for /L %%i in (%StartIndex%,1,%EndIndex%) do (
    echo Write something 
    set /p "Array[%%i]=" 
) 
echo Enter any key to show the values of the elements in the array 
pause>nul 
Rem To show the values of the elements in the array 
For /L %%i in (%StartIndex%,1,%EndIndex%) do (
    echo Array[%%i] = !Array[%%i]! 
) 
echo Write anything to add and store it as new element 4 in the array 
pause>nul 

Set /P "Array[4]=" 
echo Array[4] = !Array[4]! 
echo Write anything to add and store it as new element 5 in the array 
pause>nul 

Set /P "Array[5]=" 
echo Array[5] = !Array[5]! 
echo Hit any key to show the new array with values added 
pause>nul 

for /L %%i in (0,1,5) do (
    echo Array[%%i] = !Array[%%i]! 
) 

Rem Modification of an element 
echo Write something here to replace Array[3] = !Array[3]! 
pause>nul 

set /p "Array[3]=" 
echo The new element is updated as Array[3] = !Array[3]! 

echo Hit any key to show the modification 
pause>nul 
for /L %%i in (0,1,5) do (
    echo Array[%%i] = !Array[%%i]! 
) 
pause 

Bearbeiten auf 2016.01.08 @ 14.25:

Wie Daten Zeile für Zeile aus einer Textdatei lesen und sie in ein Array füllen?

@echo off 
Set "File=%~n0.txt" 
echo write your name : 
set /p "A[0]=" 
echo %A[0]% > %File% 
cls 
echo write your Birtheday : 
set /p "A[1]=" 
echo %A[1]% >> %File% 
cls 
echo write your gender : 
set /p "A[2]=" 
echo %A[2]% >> %File% 
cls 
echo Read data line by line from a text file and populate it to an array 
echo(
REM Read data line by line from a text file and populate it to an array 
setlocal enabledelayedexpansion 
set /a i=-1 
Rem populate the data readed from the text file into an array 
for /f "delims=" %%f in ('Type "%File%"') do (
set /a i=!i!+1 
set "A[!i!]"="%%f" 
) 
set /a lastindex=!i! 
for /L %%f in (0,1,!lastindex!) do ( 
    echo "A[%%f]=!A[%%f]!" 
) 
pause 
cls 
echo The content of A[0] is : "!A[0]!" 
echo The content of A[1] is : "!A[1]!" 
echo The content of A[2] is : "!A[2]!" 
pause 
cls 
set /a "Beforelastindex=!lastindex! - 1" 
echo Before last element is : "!A[%Beforelastindex%]!" 
echo The last elemnt value is is "!A[%lastindex%]!" 
pause 
cls 
Rem for example edit and modify your birthday and save it in the file text 
echo edit and modify your birthday 
set /p "A[1]=" 
(
    for /L %%i in (0,1,%lastindex%) do (
     echo !A[%%i]! 
    ) 
)>"%File%" 
Start "" "%File%" & exit 
+0

@ paulsm4 was hast du damit gemeint ?? Bitte erläutern Sie genauer, warum Sie diese Antwort abgelehnt haben! – Hackoo

+1

genial! Ich arbeite immer noch daran, zu verstehen, wie alles zusammen funktioniert, aber ich habe eine Idee, da viele Referenzhandbücher bestimmte Befehle und Operatoren wie %% i nicht enthalten, aber ich werde es herausfinden, eine Sache, die ich würde Ich liebe es zu wissen, wie man diese Variablen speichern kann, denn wenn die Batch-Datei geschlossen wird, werden alle dem Array hinzugefügten Variablen "gelöscht". Ich kann diese Variablen in einer .txt-Datei speichern und später abrufen aus dem Batch, der auf dem Array hinzugefügt werden soll? – Wolf

+0

@Wolf Meintest du *** Wie lade ich Daten aus einer Textdatei in ein Array und rufe sie an? *** – Hackoo

Verwandte Themen