Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

BATCH für Dateipfad mit Separator

Frage Entwicklung Batch & Shell

Mitglied: PeterS71

PeterS71 (Level 1) - Jetzt verbinden

12.01.2010, aktualisiert 14.01.2010, 3543 Aufrufe, 5 Kommentare

Hallo,

ich leider keine Erfahrung in der Batch - Programierung, benötige aber ein kleines Batch.

Ich benötige eine Batch - Datei mit der ich Dateipfade nicht unterereinander sodern hintereinander in eine Textdatei geschrieben werden.
Als Separator zwischen den Pfaden muss ein I stehen.

Mit einer einfachen Anweisung wie DIR /a /s >test.txt komme ich nich weiter.

Danke
Peter
Mitglied: TsukiSan
12.01.2010 um 13:22 Uhr
mit
01.
echo was auch immer >test.txt
hast du recht. da wird dir die ganze "test.txt"-datei ständig überschrieben.

um wieviele Dateipfade pro Zeile handelt es sich schließlich? Und muss es Batch sein?

Gruß
Tsuki
Bitte warten ..
Mitglied: PeterS71
12.01.2010 um 13:36 Uhr
Hallo,

danke für die schnelle Antwort.
Es werden sicher nicht mehr als 50 Dateipfade.
Ein Überschreiben der ausgangsdatei ist Okay.
Ich will die TXT datei in eine andere Batch einbinden,
ich benötige diese als Inpunt für eine weitere Software und diese wir über eine Batch gesteuert.
Es ist also günstig wenn die txt auch über eine Batch-Datei erzeut wird, so kann ich mehere ineinander "schachteln".

Gruß
Peter
Bitte warten ..
Mitglied: Biber
12.01.2010 um 14:06 Uhr
Moin PeterS71,

wenn ich dich richtig verstehe, dann holst du diese Ordnerliste mit dem DIR-Befehl nach der Mimik "alles unterhalb eines Startordners"?

eine mögliche Entsprechung im Batch wäre eine FOR /F-Anweisung auf genau dieses "DIR /s /a:d startverzeichnis";
eine Alternative eine wäre eine FOR /R /D-Anweisung.

Skizze (ungetestet)
01.
@echo off & setlocal 
02.
 
03.
FOR /R "x:\startdir" /D %%i in (*) do Call :AddThis "%%i;" 
04.
REM wenn das FOR-gelumpe fertig ist, dann sieht %thelongLine% so aus: 
05.
REM thelongLine=x:\startdir\pfad1;x:\startdir\pfad1\subpathX;...... 
06.
REM und da will ich alle Semikolon durch das pipe-Symbol ersetzen 
07.
set "thelongline=%thelongline:;=^|%" 
08.
REM mit Caret maskiert nur, weil ich gleich ECHOen will - wäre sonst nicht nötig. 
09.
echo %thelongline%>neueTextdatei.txt 
10.
 
11.
:: Ende des Haupt-Batches 
12.
goto :eof 
13.
~~~~~~ 
14.
:AddThis Parameter1 ist ein Lw/Pfad in Anführungszeichen 
15.
Set theLongline=%theLongline%%~1 
16.
goto :eof
Grüße
Biber
Bitte warten ..
Mitglied: PeterS71
14.01.2010 um 08:29 Uhr
Moin Biber

dein Batch geht gut zum erzeugen einer Textdatei. Ich habe nun versucht die Variabele %thelongLine% in meinem Batch zu nutzen. Ich mach aber eine Fehler. Siehst du diesen.
Der Inhalt der Variablen "%Gemarkung% und %Flurstueck% (hier stehen die Dateipfade drin) soll -input zugewiesen werden.

01.
@ECHO OFF  
02.
 
03.
FOR /R "U:\_Daten\PSW\Lageplaene\Projekte\wb_bleiloch\ALK\alk_2009" /D %%i in (*) do Call :AddThis "%%i;" 
04.
REM wenn das FOR-gelumpe fertig ist, dann sieht %Gemarkung% so aus: 
05.
REM thelongLine=x:\startdir\pfad1;x:\startdir\pfad1\subpathX;...... 
06.
REM und da will ich alle Semikolon durch das pipe-Symbol ersetzen 
07.
set "Gemarkung=%Gemarkung:;=^\ALK_1*.shp;%" 
08.
set "Gemarkung=%Gemarkung:;=^|%" 
09.
REM mit Caret maskiert nur, weil ich gleich ECHOen will - wäre sonst nicht nötig. 
10.
 
11.
 
12.
:: Ende des Haupt-batches 
13.
goto :eof 
14.
~~~~~~ 
15.
:AddThis Parameter1 ist ein Lw/Pfad in Anführungszeichen 
16.
Set Gemarkung=%Gemarkung%%~1 
17.
goto :eof 
18.
 
19.
 
20.
 
21.
FOR /R "U:\_Daten\PSW\Lageplaene\Projekte\wb_bleiloch\ALK\alk_2009" /D %%i in (*) do Call :AddThis "%%i;" 
22.
REM wenn das FOR-gelumpe fertig ist, dann sieht %Flurstuecke% so aus: 
23.
REM thelongLine=x:\startdir\pfad1;x:\startdir\pfad1\subpathX;...... 
24.
REM und da will ich alle Semikolon durch das pipe-Symbol ersetzen 
25.
set "Flurstuecke=%Flurstuecke:;=^\ALK_2*.shp;%" 
26.
set "Flurstuecke=%Flurstuecke:;=^|%" 
27.
REM mit Caret maskiert nur, weil ich gleich ECHOen will - wäre sonst nicht nötig. 
28.
echo %thelongline%>verzeichnisse_alk.txt 
29.
 
30.
:: Ende des Haupt-batches 
31.
goto :eof 
32.
~~~~~~ 
33.
:AddThis Parameter1 ist ein Lw/Pfad in Anführungszeichen 
34.
Set Flurstuecke=%Flurstuecke%%~1 
35.
goto :eof 
36.
 
37.
 
38.
 
39.
REM Batch file training Bentley Geo Web Publisher 
40.
 
41.
ECHO -------------------------------------------------------------------------  
42.
ECHO Convert Whistler DGN files to IDPR files:12.07.2007 
43.
ECHO -------------------------------------------------------------------------  
44.
 
45.
 
46.
REM ------------------------------------------------------------------------- 
47.
REM Set up variables 
48.
REM -------------------------------------------------------------------------  
49.
SET GWPINSTALLPATH=C:\BentleyGWP\GeoWebPublisher\ 
50.
SET OUTPUTPATH=Z:\Stausee_Blei\Vektor\iDPR\Stausee_Blei 
51.
SET PROJECTPATHS=U:\_Daten\PSW\Lageplaene\Einstellungen\Workspace\Seed\MicroStation\Lageplan.dgn 
52.
REM -------------------------------------------------------------------------  
53.
 
54.
 
55.
 
56.
ECHO #-------------------------------------------------------------------------  
57.
ECHO # 1. Create Gemarkung.idpr 
58.
%GWPINSTALLPATH%iDPRcnv.exe -type=DGN -input="%Gemarkung%" -seed="%PROJECTPATHS%" -output="%OUTPUTPATH%-Gemarkung.idpr" -level=Lika_Gemark,Text_Lika_Gemark -trace >Gemarkung.txt -wu=untitled 
59.
ECHO # 3. Create Flurstuecke.idpr 
60.
%GWPINSTALLPATH%iDPRcnv.exe -type=DGN -input="%Flurstuecke%" -seed="%PROJECTPATHS%" -output="%OUTPUTPATH%-Flurstuecke.idpr" -level=Lika,Text_Lika,Lika_Grenzzeichen,Lika_Flur,Lika_Gemark -trace >Flurstuecke.txt -wu=untitled 
61.
 
62.
pause
Bitte warten ..
Mitglied: Biber
14.01.2010 um 10:35 Uhr
Moin PeterS71,

ich habe deinen Codeschnipsel mal in Codetags gesetzt, damit ich wenigstens die gemeinte Zeilennummer angeben kann.

Was ich mit bloßem Auge sehe ist:
  • Ergänze in Zeile 1 nach "@echo off" noch ein " & setlocal" [alle im Batch verwendeten Variablen werden NUR dort verwendet]
  • Zeile 28 benutzt die falsche Variable %theLongline%
  • es existiert 2x ein "Call-Block" AddThis... 1x ab Zeile 15 (der wird benutzt) ; 1x ab Zeile 33 (der wird nie benutzt)
  • alles, was nun tatsächlich zum Hauptablauf des Batches gehört (z.B. die zweite FOR-Anweisung "Flurstücke" sollte natürlich auch vor die jetzige Zeile 12 "Ende des Hauptbatches"

Bitte versuche es mit diesen Tipps (erstmal) allein, ein paar Klemmer rauszunehmen.
Den verbleibenden Rest machen wir dann gerne gemeinsam.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...