Hi,
ich würde gerne als Variable das Laufwerk, auf dem ein Script liegt definieren.
Also ähnlich dem @Scriptdir.
Dies geht jedoch auf den genauen Pfad des Scriptes.
Gibt es eine Möglichkeit nur das Laufwerk zu definieren aber OHNE die Unterordner?
Hi,
ich würde gerne als Variable das Laufwerk, auf dem ein Script liegt definieren.
Also ähnlich dem @Scriptdir.
Dies geht jedoch auf den genauen Pfad des Scriptes.
Gibt es eine Möglichkeit nur das Laufwerk zu definieren aber OHNE die Unterordner?
Hallo
Sry kann grade nich richtig mit autoitwas machen (noch nich installiert da ich mom nur vista starten kann...) aber guck dir mal den befehl _PathSplit in der UDFHilfe an!
so sollte es dann ca gehen:
#include <file.au3>
Global $1,$2,$3,$4
_PathSplit(@ScriptDir,$1,$2,$3,$4)
Msgbox(0,"",$1)
kann es aber wie gesagt nicht testen is jetzt nur shcnell ausm stehgreif...
Mfg Spider
oder so:
[autoit]$result = StringLeft(@ScriptDir, 2)
[/autoit]also "$result" ist das der buchstabe + ":" = "Z:"
Danke, euch beiden
Es funktioniert beides einwandfrei.
Habe jetzt nur ein Problem :weinen:
Ich muß nun würfeln, welches von beiden ich nehmen soll
Hallo!
kein problem
Ich würde dr galvanys nehemn da du da keine datei includen musst.. ausserdem sind die einfachsten methoden immer die besten^^ irgend so ein schlauer typ (einstein^^) sagte mal: "Mache alles so einfach wie nur möglich, aber bloß nicht einfacher"
Mfg Spider
Wie sagt Frau so gut?
In der Kürze liegt die Würze :schild4:
Aber das nicht in jeder Situation
Liebe Grüße, Lina.
ZitatOriginal von Tweaky
Danke, euch beiden
Es funktioniert beides einwandfrei.Habe jetzt nur ein Problem :weinen:
Ich muß nun würfeln, welches von beiden ich nehmen soll
Hi,
da gibt es viele Möglichkeiten.
Ich hätte da auch noch eine:
[autoit]$result = StringMid(@ScriptDir,StringInStr(@ScriptDir,":",0,-1)-1,3)
[/autoit]Damit können die Buchstaben auchlam 2stellig werden.
Außerdem ist das mal ein Beispiel für sicheres Programmieren.
MfG
Der_Doc
Hi!
Der_Doc:
Sag mir, wenn ich mich täusche, aber meines Wissens können nur A-Z vergeben werden als Laufwerksbuchstaben, keine zweistelligen. Wäre es so, dann würde dein Code einen vorhandenen Fehler mitschleppen, was nicht gerade gut wäre. Dann sollte man vorher mit RegEx die Gültigkeit prüfen und dann eine der beiden obigen Lösungen verwenden
peethebee
Laufwerksbuchstabem können natürlich nicht 2Stellig werden (deshalb auch der )
Aber wieso denn Fehler mitschleppen?
$result = StringMid(@ScriptDir,StringInStr(@ScriptDir,":",0,1)-1,3)
MsgBox(0,"",$result)
StringInStr(@ScriptDir,":",0,1) <---- Soll heisen suche den 1. ":" und gib die Stringlänge zurück.
Ergebniss: 2
(Egal ob die Buchstabel 2 oder 5 Stellig werden. )
Und der Rests nimmt noch den "\" mit. bei mir funktioniert das eifach super.
MfG
Der_Doc
Hi Doc!
Bei @ScriptDir funktioniert es natürlich super
Aber ich hatte eine Situation im Kopf, wo der Nutzer selbst etwas in der Art "CD:\Beispiel\Datei.ext" eingibt - dann hätte man einen ungültigen Wert als Laufwerksbuchstaben. Aber das haftet wohl auch den anderen Lösungen an...
Mein Gedankengang von damals erscheint mir auch gerade etwas skurril, aber egal - dein Code funktioniert
peethebee
Hi,
oder
[autoit]MsgBox(64, 'ScriptDrive', _getScriptDrive())
MsgBox(64, 'ScriptDrive mit "\"', _getScriptDrive(1))
Func _getScriptDrive($iflag = 0)
Local $drive = StringRegExp(@ScriptDir, '[a-zA-Z]\:', 1)
If @error <> 0 Then Return -1
If $iflag = 0 Then Return $drive[0]
Return $drive[0] & '\'
EndFunc ;==>_getScriptDrive
So long,
Mega
Hi,
ist ja eigentlich auch egal oder ;-). Ich nutze den Code immer wenn ich die Commandlineausgabe eines Prog weiterverarbeiten möchte.
Ansonsten siehe meine Sig