thorkmon
Goto Top

Spezifische benannter Order in relativem Pfad finden und Datei dorthin kopieren. Batch

Hallo Zusammen,
ich bin ein neuer Nutzer, wohlwissend - leider - aber der x-fachste Fragensteller eines wohl ähnlichen Sachverhalts.

Folgender Sachverhalt:

Wir scannen Aufträge manuell am Drucker.
Jeder Nutzer hat auf dem personalisiertem Laufwerk y:\ seinen Scan-Ordner.
Der Scanner gibt am Display einen 4-stelligen Vorgangscode aus.
Daraus wird auch der Dateiname erzeugt: 4711_0001.pdf

Dieser Scan wird sinngemäß umbenannt. Und wird dann - wieder manuell - in SAP elektronisch archiviert.

Um mir diesen Vorgan zu erleichter habe ich mir folgende batch Datei geschrieben, welche auf c:\... liegt:


@echo off

echo Für elektronisch Ablage der Scans in SAP

set /p Fax_Ref=Bitte die Order Referenz des Fax Geraets eingeben:
set /p Vng_Ref=Bitte die SAP Vorgangsnummer eingeben:
set /p Kd_Name=Bitte den Kundennamen eingeben:
set myDat=%date:~-4%-%date:~-7,2%-%date:~-10,2%
Set File_Name=%myDat%"_"%Vng_Ref%"_"%Kd_Name%  
ren "Y:\%Fax_Ref%_0001.pdf" "%File_Name%.pdf"  
echo /p %File_Name%
Pause



So kann ich einfach im SAP auf den [Durchsuchen] Button im Register Anhänge des Auftrags klicken, meine y:\
Laufwerk ansteuern und die oberste Datei ist mein Anhang.

Nun kommt der Punkt an dem ich Hilfe brauche. Ich bin kein ITler und hab auch keinen generellen dv Background.
Das was ich kann hab ich mir selbst erarbeitet und es ist leider nicht allzu viel.

Unsere Techniker holen Sich Ihre Informationen nicht aus dem SAP. Diese führen das Laufwerk Z:\

Dort ist die Struktur wie folgt:

Z:\Aufträge\Deutschland\K\Kamilla\42D08156\ ... Dateien ".pdf", ".doc" usw..
Z:\Maßprotokolle\China\K\Kamilla\42D08157\ ... Dateien ".pdf", ".doc" usw..

Pfad = [Vorgangs bzw. Informations-Art] -> [Land] -> [Alphabet] -> [Kundenname] -> [Auftragsnummer] :: bis hier hin Ordner :: \-> Dateien aller Art.

Also auch wenn ich brav meine Aufträge in SAP archiviere, wollen unsere Techniker diese Datei nochmals auf Ihre Laufwerk Z:\

Da unsere Techniker und unsere Kaufluete dort arbeiten, und es halt an dem notwendigen Wissen fehlt für dv gerechte Benennungen,
haben wir z.B.:

- im Haupt Ordner "Aufträge" einen Umlaut in der Benennung.
- im Haupt Ordner "Aufträge" wird der Unter-Ordner mit dem Kunden Namen wie folgt benannt: "D+M Formbau"
- im Haupt Ordner "Maßprotokolle" ist der Unter Ordner mit dem Kunden Namen: "D + M, Formbau GmbH" - benannt.
- im Haupt Ordner "Zertifikate" heisst der Kunde dann: "D+M, Formenbau"

Ich denke die Problematik ist ersichtlich was die Ordner Benennung angeht. Die Struktur steht aber schon Jahrzehnte und sie
wird sich auch nicht ändern.

Nun hätte ich gern, das meine obige Batch Datei, nach dem umbenennen des Scans, automatisch eine Kopie davon in den jeweilgen
Auftragsordner im Laufwerk Z:\Aufträge\...\42D08156\ speichert. Das einzige eindeutige Kriterium ist die Auftragsnummer welche
ich ja im obigen Batch schon in der Variablen Vng_Ref hinterlege. Der Ordnerpfad davor ist leider unter mehreren
Parametern variabel.

Ich hab bereits die SuFU genutzt, ich hab sämtliche Foren hoch unter runter geschaut... aber entweder ist es ein Tutorial
zu einem absoluten Pfad, oder einem realtiven Pfad wo aber der Batch auf dem selben Laufwerk liegt usw..
Das passende konnte ich leider nicht finden und mir aus den Fragmenten auch keine Lösung basteln.
Daher hier mein Hilfe Gesuch für einen nutzbaren Code.

Ein Bitte hätte ich, versucht bitte die Code Schnibsel so gut es geht mit Erklärungen zu versehen. Ich versuche eigentlich immer
aus jedem Punkt, Strich, Prozentzeichen, Attributsangabe usw. zu lernen. Leider findet man aber in den Foren nie wirklich detailiert beschrieben
was der Zweck und die Funktion dahinter ist.
Zum Verständis dieser Bitte:
Die code Zeile:

set myDat=%date:~-4%-%date:~-7,2%-%date:~-10,2% 

Sie funktioniert und macht was Sie soll, das aktuelle Datum erzeugen ... wie Sie das aber macht, sprich was dort jedes "~" oder der Operator
"-10,2%" bewirkt .... seufz .... ich hab keinen blasen Schimmer :-P
Und ohne das zu verstehen wendet es sich später so schlecht an.

Von daher, vielen Dank im Voraus für eure Hilfe.

Content-Key: 533606

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

Printed on: April 16, 2024 at 11:04 o'clock

Member: mayho33
mayho33 Jan 11, 2020 at 00:49:27 (UTC)
Goto Top
Hi!

OK! Es ist nicht einfach die Infos aus dem vielen Text zu holen, aber grundsätzlich willst du deinen Scan in deinem Laufwerk und dem der anderen ablegen.

Warum erweitert du dann nicht dein Batch?

  • Den neuen Namen des Scans hast du ja schon.
  • den Pfad der anderen Ordner hast du auch.

Also lege dir noch ein paar weitere Variablen mit den Pfaden an und kopiere deinen Scan auch dort hin. Die Umlaute sind zwar Kacke, aber normalerweise kein Problem.

Habe ich was übersehen?

Grüße!
Member: Thorkmon
Thorkmon Jan 12, 2020 updated at 18:44:28 (UTC)
Goto Top
Danke Dir für deine Antwort und Sorry für den vielen Text. Meine Intention war es den Sachverhalt möglichst präzise zu beschreiben aber der Umfang hat das ganze dann wohl verwässert.

Also den Batch zu erweitern ist das was ich möchte.

Den Namen des Scans hab ich. Was ich nicht habe ist den jeweiligen Pfad zum 4 Unterordner, der Ordner welcher den Namen des Auftrags trägt (z.B. 42D08156).
Der bisherige Batch hat den Auftragsnamen in der Variablen, auch den Kunden-Namen, aber dieser bringt mir ja nichts aufgrund der oben beschriebenen Sachlage mit den Ordner Benennungen.

Im Grund müsste der Batch mir den Pfad "auslesen" wo genau der 4 Unterordner mit dem spezifischen Auftragsnamen liegt, daran aber scheitert es, zumindest die praktische Umsetzung. Theorie ist klar... denke ich.
Per Log.File über eine .txt zu exportieren und dann auszulesen sollte am effizientesten sein. Aber eben den Pfad zu bestimmen und das exportieren und auslesen des Log.Files… da fehlt mir einfach die Kenntnis.

Hab versucht über eine For Schleife und u.a. über den dir Befehle. Aber alles was ich hinbekam war, dass mir in der cmd einmal komplett das Verzeichnis von Z.\ durchlaufen wurde und als Ergebnis kam: 42D08156 nicht gefunden. Ich hab es wohl aber auch so geschrieben als würde ich eine Datei suchen und keinen Ordner. Wie gesagt, hier fehlt mir einfach die Kenntnis.

Hoffe jetzt wird es etwas deutlicher was ich möchte. Der Batch soll halt unabhängig vom jeweiligen Kunden funktionieren und sich immer an der Auftragsnummer orientieren.
Member: mayho33
mayho33 Jan 13, 2020 at 12:50:33 (UTC)
Goto Top
Zitat von @Thorkmon:
Im Grund müsste der Batch mir den Pfad "auslesen" wo genau der 4 Unterordner mit dem spezifischen Auftragsnamen liegt

also die?:
Z:\Aufträge\Deutschland\K\Kamilla\42D08156\ ... Dateien ".pdf", ".doc" usw..
Z:\Maßprotokolle\China\K\Kamilla\42D08157\ ... Dateien ".pdf", ".doc" usw..

oder noch tiefer?

oder meinst du das?:
- im Haupt Ordner "Aufträge" einen Umlaut in der Benennung.
- im Haupt Ordner "Aufträge" wird der Unter-Ordner mit dem Kunden Namen wie folgt benannt: "D+M Formbau"
- im Haupt Ordner "Maßprotokolle" ist der Unter Ordner mit dem Kunden Namen: "D + M, Formbau GmbH" - benannt.
- im Haupt Ordner "Zertifikate" heisst der Kunde dann: "D+M, Formenbau"


Per Log.File über eine .txt zu exportieren und dann auszulesen sollte am effizientesten sein.

das bezweifle ich sehr. nicht nur, dass es extrem umständlich ist, es ist auch mehr als buggy.

Aber eben den Pfad zu bestimmen und das exportieren und auslesen des Log.Files… da fehlt mir einfach die Kenntnis.

Batch ist meiner Ansicht nach auch nicht wirklich geeignet um so komplexe Aufgaben wie Ordner nach Patterns zu durchsuchen umzusetzen. Warum verwendest du nicht Powershell oder zumindest VBS?

Hoffe jetzt wird es etwas deutlicher was ich möchte. Der Batch soll halt unabhängig vom jeweiligen Kunden funktionieren und sich immer an der Auftragsnummer orientieren.

Nicht wirklich! face-wink

Bitte beschreibe mal von A bis Z was du bei einem Auftrag machst. Also vom Auftrag anlegen bis zum Kopieren in die NLWs der anderen Bereiche. in etwa so:

  • Auftragsnummer erheben in/durch/von/...
  • PDF umbenennen
  • Auftrag im SAP anlegen
  • nach Ordner xy suchen (nach welchen Kriterien??)
  • PDF kopieren (wohin jetzt genau??, Sind da noch weitere Unterordner zu durchsuchen oder gehts nach speziellen Namen??)

Grüße!
Member: Thorkmon
Thorkmon Jan 13, 2020 updated at 13:52:34 (UTC)
Goto Top
Batch ist meiner Ansicht nach auch nicht wirklich geeignet um so komplexe Aufgaben wie Ordner nach Patterns zu durchsuchen umzusetzen. Warum verwendest du nicht Powershell oder zumindest VBS?

Powershell hab ich 0 Kenntnisse.
VBS, ausser ein paar adaptierte Makros für Excel und Outlook auch nicht wirklich Kenntnisse.
Leider... .


Hoffe jetzt wird es etwas deutlicher was ich möchte. Der Batch soll halt unabhängig vom jeweiligen Kunden funktionieren und sich immer an der Auftragsnummer orientieren.

Nicht wirklich! face-wink

Argghhh und ich war so bemüht... face-smile


Per Log.File über eine .txt zu exportieren und dann auszulesen sollte am effizientesten sein.

das bezweifle ich sehr. nicht nur, dass es extrem umständlich ist, es ist auch mehr als buggy.

Uh, ok. Dachte nach meiner persönlichen Recherche in div. Foren, dass dies eine "gute" Varaiante sei.

Bitte beschreibe mal von A bis Z was du bei einem Auftrag machst. Also vom Auftrag anlegen bis zum Kopieren in die NLWs der anderen Bereiche. in etwa so:

  • Auftragsnummer erheben in/durch/von/...
  • PDF umbenennen
  • Auftrag im SAP anlegen
  • nach Ordner xy suchen (nach welchen Kriterien??)
  • PDF kopieren (wohin jetzt genau??, Sind da noch weitere Unterordner zu durchsuchen oder gehts nach speziellen Namen??)

1. Nach Abschluss des Auftrags, sprich Rechnungserstellung, wird der Vorgang gescannt. Auf Laufwerk Y:.
2. Der Scan wurde dann manuell - über Explorer -> Kontextmenue ->Umbennen geändert.
3. Ins SAP System: Modul Aufträge -> Auftrag auswählen -> Reiter Anhänge ansteuern -> Scan beifügen.
4. Wieder in den Explorer, den umbenannen Scan per Copy&Paste verschieben auf das Z: Laufwerk für unsere Techniker

INFO: Bei Abschluss besteht die Ordnerstruktur auf Z: schon. Wird entweder vorher vom Techniker angelegt oder bei Auftragserstellung durch den Sachbearbeiter.

Das ganze manuelle Gefummel im Explorer mit Kontext Menü und Copy und Paste wollte ich halt vereinfachen. Deshalb mein Batch.
Der vereinfacht aber aktuell ja nur Schritt 2.
Ich erfasse in meine Batch die von SAP vergeben Auftragsnummer, die ist gleich mit der Bennung des 4 Unterordner auf Z:.
und somit das eigentlich Suchkritierium für den Zielpfad der Copy.
Kundenname geben ich auch anhand der Rechnung in den Batch, dieser ist aber aufgrund der Problematik... :

Z:\Aufträge\Deutschland\K\Kamilla\42D08156\ ... Dateien ".pdf", ".doc" usw..
Z:\Maßprotokolle\China\K\Kamilla\42D08157\ ... Dateien ".pdf", ".doc" usw..

- im Haupt Ordner "Aufträge" einen Umlaut in der Benennung.
- im Haupt Ordner "Aufträge" wird der Unter-Ordner mit dem Kunden Namen wie folgt benannt: "D+M Formbau"
- im Haupt Ordner "Maßprotokolle" ist der Unter Ordner mit dem Kunden Namen: "D + M, Formbau GmbH" - benannt.
- im Haupt Ordner "Zertifikate" heisst der Kunde dann: "D+M, Formenbau"

... nicht deckungsgleich mit den vorhanden Ordnern. Und dient auch nur zur eindeutigen Benennung des PDF.Files.
Die Hauptordern auf Z: wie Maßprotokolle und Zertifikate etc.. interessieren im Grunde nicht.
Für mich spielt sich alles in Z:\Aufträge\... ab.

2020-01-13_143525
Member: Thorkmon
Thorkmon Jan 13, 2020 at 14:03:15 (UTC)
Goto Top
Das Bild zeigt im Prinzip: Eine manuell umbenannte Datei um Zielordner

2020-01-13_143525

Das Bild zeigt eine mit meinem Batch umbenannte Datei noch im Scan Ordner.

2020-01-13_145634

Das Bild zeigt die Ordnerstruktur bei einem Kunden. Diese Ordner sind im Prinzip das einzige eindeutige Kriterium.

2020-01-13_150011

Von Y soll es nach Z anhand der Auftragsnummer (Benennung des 4 Unterordner).


Ansonsten wüsste ich jetzt nicht mehr wie ich es weiter erklären könnte face-smile
Member: Thorkmon
Thorkmon Jan 13, 2020 at 14:09:20 (UTC)
Goto Top
Vielleicht bin ich ganz auf dem falschen Dampfer... aber wäre das hier ein denkbare Lösung?

Administrator Forum - Link Tokens
Mitglied: 142232
Solution 142232 Jan 13, 2020 updated at 15:08:21 (UTC)
Goto Top
Auftragsordner im Laufwerk Z:\Aufträge\...\42D08156\ speichert. Das einzige eindeutige Kriterium ist die Auftragsnummer welche
ich ja im obigen Batch schon in der Variablen Vng_Ref hinterlege. Der Ordnerpfad davor ist leider unter mehreren Parametern variabel.
Suchen nach Ordnernamen geht mit Batch bspw. so (nicht vom Pfad beirren lassen, er sucht auch nach dem Ordner-Namen in Unterordnern, nicht nur im Root! Wegen Parameter /s).
@echo off
:: Codepage anpassen damit Umlaute richtig verarbeitet werden
chcp 1252
:: Nummer eingeben lassen
set /p Vng_Ref=Bitte die SAP Vorgangsnummer eingeben:
:: Im Root-Pfad inkl. Unterordner nach Vorgangsnummer suchen
for /f "delims=" %%a in ('dir /b /s /ad "Z:\Aufträge\%Vng_Ref%"') do set "folder=%%a"  
if defined folder (
    echo Ordner hier gefunden '%folder%'  
) else (
    echo Ordner '%Vng_Ref%' wurde nicht gefunden!  
)
Tutorial zur FOR-Schleife und was die einzelnen Parameter bedeuten, findest du hier:
Tutorial zur FOR-Schleife
Parameter zum dir Befehl mit dir /? auf der Konsole.

sprich was dort jedes "~" oder der Operator "-10,2%" bewirkt .... seufz .... ich hab keinen blasen Schimmer :-P
Hier kannst du es nachschlagen
https://www.dostips.com/DtTipsStringManipulation.php#Snippets.Remove
Member: Thorkmon
Thorkmon Jan 14, 2020 at 08:06:48 (UTC)
Goto Top
Hey, vielen lieben Dank für den Ansatz. Ich bastel damit gleich mal rum, wenn ich bissel vom operativen Geschäft frei bin.
Gestern Abend ist mir einer in die Karre gerauscht... deshalb bin ich heute nur einen halben Tag im Geschäft.
Entweder den Rest bekomm ich kpl. alleine hin und poste dann den kpl. Batch oder es kommnt noch ein Hilfe-Gesuch.

Aber vorab vielen herzlichen Dank.
Mitglied: 142232
142232 Jan 14, 2020 updated at 08:10:29 (UTC)
Goto Top
Gestern Abend ist mir einer in die Karre gerauscht...
Ouhh, das tut mir leid. Aber "thank god you're still alive" bei den vielen Blindschleichen da draußen .
Member: Thorkmon
Thorkmon Jan 14, 2020 at 08:35:48 (UTC)
Goto Top
Hab den obestehende Code mal laufen lassen. Leider findet er den Ordner nicht.
Ich hab es dann mal versucht mit dem 1ten Unterordner. Sprich in dem Fall "Belgien".

Als Ergebnis gibt es immer:
Das System kann die angegebene Datei nicht finden.
Ordner 'Belgien' wurde nicht gefunden!


Ich hab verschiedene, auch definitv vorhandene Ordner Name verwendet. Ergebnis bleibt das gleiche wie oben.
Irgendwie sucht er eine Datei und keinen Ordner.
Mitglied: 142232
Solution 142232 Jan 14, 2020 updated at 08:44:38 (UTC)
Goto Top
Zitat von @Thorkmon:

Hab den obestehende Code mal laufen lassen. Leider findet er den Ordner nicht.
Ich hab es dann mal versucht mit dem 1ten Unterordner. Sprich in dem Fall "Belgien".

Als Ergebnis gibt es immer:
Das System kann die angegebene Datei nicht finden.
Ordner 'Belgien' wurde nicht gefunden!


Ich hab verschiedene, auch definitv vorhandene Ordner Name verwendet. Ergebnis bleibt das gleiche wie oben.
Irgendwie sucht er eine Datei und keinen Ordner.
Nein es werden nur Ordner gesucht (Parameter /ad) , code wurde hier einwandfrei getestet und Ordner gefunden, hab ich schon x mal so gemacht!
Du hast wahrscheinlich deine Batch-Datei nicht im richtigen Encoding gespeichert, damit er die Umlaute richtig interpretieren kann und deswegen deinen Root-Ordner schon nicht findet..
Member: Thorkmon
Thorkmon Jan 14, 2020 at 08:46:28 (UTC)
Goto Top
Danke Dir... trotzdem sehr ärgerliche Situation. Der Verursacher sieht die Schuld nicht ein.
Es war auf einer riesen großen befahrenen Kreuzung. Und er stand auf der linken Spur (eine Spur, eine Richtung zum U-Turn).
Diese ist aufgrund baulicher Umstande kpl zu und da staut es sich wie wild. Ich war auf zweite Fahrbahn rechts von ihm.
(zwei Spuren , eine Richtung). Meine beiden Fahrstrecken waren kpl. fließender Verkehr. Ich wechselte von der rechten auf meiner Richtung auf die linke Fahrspur. Dem Verursacher wurde es zu bunt im Stau und zog wieder rum auf meine linke Spur.
Fahre die Strecke seit 22 Jahren und so ein Manöver hat da noch nie einer vollführt. Ich sehe ihn wie er raus zieht, ich bei 50 km und er aus dem Stand so zusagen. Da rauscht er mir mit seiner rechten Spitze in die Fahrertür und zieht durch bis zum Hinterrad.
Ich bleibt stehen - voller Zorn- und denk mir naja Sachlage klar... schau noch nach hinter und sehe durchgezogene Linie.
Denke mir: Sachlage völlig klar und auf dieser Kreuzung mitten in der Innenstadt wo seit Tagen, Wochen Chaos ist bleibt ich jetzt nicht stehen bei klarer Sachlage und signalisier: Nächste Parkgelegenheit suchen und quatschen... .
Wir steigen aus und er sag: teilschuld, ich durfte da Spurwechseln... ????????????
Und tatsächlich, er ist im Prinzip rausgezogen als gerade die durchzogene Linie began.... Und nun steh ich erstmal da ohne Zeugen und hab die A-Karte.
Heute morgen mit der Polizei telefonierte und die sagte mir: Ich bin Ihnen dankbar, dass Sie die Unfallstele geräumt haben, wir wären daraufhin bis in die Nacht beschäftigt gewesen. Auch wenn es mir jetzt leid tut für SIe.
Ich sagte darauf nur: Na im Grund tut es mir leid für Sie: Weil glauben Sie mir und wenn ich demnächst auf einer Formel-Eins-Strecke einen Unfall hab, ich rühr mich keinen Meter weg und wenn die Welt untergeht.

Tja aus Schaden wird mal klug.
Member: Thorkmon
Thorkmon Jan 14, 2020 at 08:50:41 (UTC)
Goto Top
Ich hab den von Dir gepostet Code 1:1 übernommen. Wo kann/soll ich noch etwas ändern, dass die besagten Umstände behoben werden. Sprich wie kann ich den Batch im richtigen Encoding speichern?

Datei heisst, jetzt erstmal Test.bat.
Meine eigen ursprüngliche heisst: AblageScans_Angebote.bat
Member: Thorkmon
Thorkmon Jan 14, 2020 at 09:33:44 (UTC)
Goto Top
Hab jetzt nochmal einen neuen Pfad auf Z angelegt.

Z:\Test\19X114906\

Hab die Batch (test.bat) entsprechend angepasst und das ist das CMD Ergebnis:

2020-01-14_103149
Member: Thorkmon
Thorkmon Jan 14, 2020 at 10:03:12 (UTC)
Goto Top
Also es scheint am Netzwerklaufwerk zu liegen.
Wenn ich das zu durchsuchende Verzeichnis auf C: lege findet er Verzeichnisse.
Hab auch den Batch mal auf Z gespeichert aber da bleibt das Ergebnis wie zuvor mit Bild aufgezeigt.
Mitglied: 142232
142232 Jan 14, 2020 updated at 11:18:01 (UTC)
Goto Top
Zitat von @Thorkmon:

Also es scheint am Netzwerklaufwerk zu liegen.
Wenn ich das zu durchsuchende Verzeichnis auf C: lege findet er Verzeichnisse.
Hab auch den Batch mal auf Z gespeichert aber da bleibt das Ergebnis wie zuvor mit Bild aufgezeigt.

Nö, das ist unabhängig und geht einwandfrei, siehe:

screenshot

F u n z t. Ich bin raus, viel Erfolg noch bei den Batch Basteleien in den 2020ern. Lerne Powershell oder Bash.

Ciao.
Member: Thorkmon
Thorkmon Jan 14, 2020 at 11:22:32 (UTC)
Goto Top
Also auch nochmal mit Umlaute auf C: getestet. Funktioniert da auch einwandfrei.
D.h. Batch File auf C gespeichert (ist es ja ohnehin) und zu durchsuchendes Verz. auf C gelegt.

Muss als definitiv an Z: liegen. Wenn es dafür noch eine Lösung gibt bzw. das Problem vielleicht bekannt ist, sollte ich den Rest hinbekommen.

Aber bis hierhin nochmals vielen Dank, auch für die hilfreichen Links.
Mitglied: 142232
142232 Jan 14, 2020 updated at 11:41:46 (UTC)
Goto Top
Dann überschreiten entweder die Pfade auf Z die Pfadlänge von 255 Zeichen, oder die Batch läuft nicht mit dem Account mit dem das Laufwerk gemappt wurde. Netzlaufwerke werden ja benutzerabhängig gemappt und schon das Starten einer elevated Batch führt dazu das Netzlaufwerke der Nutzer-Session dort nicht verfügbar sind und somit die Batch nichts finden kann.
Wo die Batch liegt ist übrigens unerheblich da wir ja den absoluten Such-Pfad angeben.

Statt ein Netzlaufwerk zu verwenden nutze mal die UNC-Pfade des Laufwerks, das geht mit dem DIR-Befehl ebenfalls.

Oder nutze einfach die Powershell, ist sowieso zeitgemäßer
Get-ChildItem 'Z:\Aufträge' -Filter 'ID1234' -Directory -Recurse  
Fertsch. Ihr baut euch unnötige Umwege face-wink.
Member: Thorkmon
Thorkmon Jan 15, 2020 at 09:04:37 (UTC)
Goto Top
Die Struktur ist nicht schön, ich weiss, aber Powershell bin ich halt noch auf Stand "0,0"... .

Ich hab es mal mit dem UNC PFad versucht, wie in den Bilder oben im Explorer gezeigt. Funktioniert aber leider auch nicht.
ping ich den LaufwerksNamen im cmd an bekomm ich die IP und noch die Angabe Laufwerksnamen.local.

Aber auch mit der IP und dem Zusatz .local findet er einfach nicht das Netzwerk-Laufwerk.
Mitglied: 142232
142232 Jan 15, 2020 updated at 09:31:47 (UTC)
Goto Top
Zitat von @Thorkmon:

Ich hab es mal mit dem UNC PFad versucht, wie in den Bilder oben im Explorer gezeigt. Funktioniert aber leider auch nicht.
ping ich den LaufwerksNamen im cmd an bekomm ich die IP und noch die Angabe Laufwerksnamen.local.
Ist ja auch Blödsinn! "Den Laufwerksnamen pingen" ... wat für'n Stuss!
Aber auch mit der IP und dem Zusatz .local findet er einfach nicht das Netzwerk-Laufwerk.
Ebenso Blödsinn, scheint da fehlt schon grundlegendes Netzwerkwissen, schon weil man ein *.local nutzt das für mDNS reserviert ist.
Member: Thorkmon
Thorkmon Jan 15, 2020 at 10:03:17 (UTC)
Goto Top
... .
Nicht gleich so ruppig.
Hab ich auch im initialen Post geschrieben, dass ich keine grundlegenden IT Kenntnisse habe.
(Soll ich jetzt auch los poltern mit, da fehlen anscheinend grundlegende Lese <-> Interpretationskenntnisse?) face-wink
Und das wenige Wissen halt im Laufe der Jahre zusammen gelernt wurde... .

Wollte damit weder für Unmut Sorge noch jemandem auf den Schlips treten.
Ich versuche halt nur - in meinen bescheidenen Möglichkeiten - etwas gangbar zu machen.
Member: Thorkmon
Thorkmon Jan 15, 2020 at 14:55:25 (UTC)
Goto Top
Habs!

Auch wenn's Stuss war zu pingen... für mich es dazu geführt mir nochmals die Laufwerk anzuschauen per net use.
Somit hab ich den 'korrekten' UNC Pfad gefunden und bin erstmal nicht in die Tiefe bis Order [Aufträge] vorgegangen und es funktionierte.

Ich hab es dann mal direkt an der Konsole probiert mit dem dir Befehl und da lief die Suche problemlos, in der Batch aber nicht.
Also hab ich das Echo Off ausgemacht und gesehen, dass er trotz der codepage den STRING im dir Befehl der Forschleife nicht richtig in die cmd Zeile schreibt. Sprich das ä mit Ä.

Das lag schlicht und ergreifend an den Notepad Einstellungen. Ich hab es dann unter der Codierung ANSI gespeichert und dann übertrug er auch das ä korrekt.

Anbei der Code:

@echo off
chcp 1252

echo Für elektronisch Ablage der Scans auf Laufwerk Z

:: User Eingaben
set /p Fax_Ref=Bitte die Order Referenz des Fax Geraets eingeben:
set /p Vng_Ref=Bitte die PAN SAP Vorgangsnummer eingeben:
set /p Kd_Name=Bitte den Kundennamen eingeben:

:: aktuelles Datum ermitteln YYYY-MM-TT
set myDat=%date:~-4%-%date:~-7,2%-%date:~-10,2%

:: Datei Name erzeugen
Set File_Name=%myDat%"_"%Vng_Ref%"_"%Kd_Name%  

:: File umbennen und Name anzeigen
ren "Y:\%Fax_Ref%_0001.pdf" "%File_Name%.pdf"  
echo /p %File_Name%

:: Im Root-Pfad inkl. Unterordner nach Vorgangsnummer suchen
for /f "delims=" %%a in ('dir /b /s /ad "Z:\Aufträge\%Vng_Ref%"') do set "folder=%%a"  

:: Kopie des Files in den Zielordner
copy Y:\"%File_Name%.pdf" %folder%  
Pause

Auch auf die Gefahr hin dass ich mich wiederhole:
Danke nochmals. Dein Hinweis (@serial) gab den Lösungsansatz und die Nackenschläge ließen mich weiter beissen.
Auch wenn Du mir anfänglich mächtig imponiert hast und dann stark nachgelassen hast face-wink = Danke Dir!
Mitglied: 142232
142232 Jan 15, 2020 updated at 15:30:39 (UTC)
Goto Top
Zitat von @Thorkmon:
Das lag schlicht und ergreifend an den Notepad Einstellungen. Ich hab es dann unter der Codierung ANSI gespeichert und dann übertrug er auch das ä korrekt.

Deswegen hatte ich ja ganz zu Anfang das hier zu dir geschrieben:
Du hast wahrscheinlich deine Batch-Datei nicht im richtigen Encoding gespeichert, damit er die Umlaute richtig interpretieren kann

und dann stark nachgelassen hast
Wer lesen kann ist klar im Vorteil face-smile.
Member: Thorkmon
Thorkmon Jan 16, 2020 at 07:38:04 (UTC)
Goto Top
Zitat von @Thorkmon:

Ich hab den von Dir gepostet Code 1:1 übernommen. Wo kann/soll ich noch etwas ändern, dass die besagten Umstände behoben werden. Sprich wie kann ich den Batch im richtigen Encoding speichern?

Aufgrund meiner Unkenntnis habe ich mich so auf den Begriff "Batch-Datei" an sich fixiert, dass ich das in dem Moment überhaupt nicht auf den Ursprung durch Notepad beziehen konnte. Sorry. face-sad
Aber ich hatte nachgefragt. face-smile

Zitat von @142232:

und dann stark nachgelassen hast
Wer lesen kann ist klar im Vorteil face-smile.
Deswegen an der Stelle: Chapeau. Dem ist nicht mehr hinzuzufügen. face-big-smile

Aber letztendlich wqurde es gelöst und die Links und die daraus gewonnen Erfahrung sind für mich Gold wert.

Keine Frage... , ich komm wieder. Nicht so bald aber bestimmt.