dorjo1990
Goto Top

Batch file Problem mit dir befehl

Hi @ all,
ich hab mal wieder eine Frage!

Ich wollte ein Script schreiben, welches nach einer Datei sucht und in dieser Datei dann eine Zeile verändert.
Bisher steh ich hier:

@echo off
cd %userprofile%
dir "<Dateiname>" /S /B  

Nun gibt es allerdings 2 Probleme face-sad
1. Wie bekomme ich das Ergebnis von "dir" in eine Variable gespeichert, damit ich sie einem Script übergeben kann, welches die Textersetzung vornimmt?
2. Die Datei gibt es 2 mal auf dem Rechner und ich brauche beide Pfade, möglichst nacheinander um beide Dateien zu verändern!

Gibt es da irgendeine Möglichkeit das zu realisieren?

MfG

DorJo

Content-Key: 122487

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

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: bastla
bastla 11.08.2009 um 13:22:47 Uhr
Goto Top
Hallo DorJo1990!

Etwa so:
@echo off & setlocal
for /f "delims=" %%i in ('dir /s /b /a-d "%userprofile%\Dateiname"') do start SCRIPT "%%i"  
Grüße
bastla
Mitglied: DorJo1990
DorJo1990 11.08.2009 um 14:10:17 Uhr
Goto Top
Das klingt super, allerdings gibt es ein komisches Problem! Da dieses Skript auf einem Server liegt habe ich jetzt folgenden Code zusammengeschnipselt:
@echo off & setlocal 
set "Skriptpfad=\\ServerIP\Freigegebener Ordner\SCRIPT"
set "zielpfad=%allusersprofile%\Startm~1\Programme\autostart"
set "progtitel=Programmtitel"
set "progexe=Programm"
set "beschreibung=Beschreibung"

cd %userprofile%
for /f "delims=" %%i in ('dir /s /b /a-d "%userprofile%\Dateiname"') do start %Scriptpfad% "%%i" "zuersetzender String" "Ersetzungsstring"
for /f "delims=" %%i in ('dir /s /b /a-d "%userprofile%\Dateiname"') do set "progdir=%%i"

if not exist "%zielpfad%" md "%zielpfad%"

echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs
echo Set objShortcut=objShell.CreateShortcut("%zielpfad%\%progtitel%.lnk")>>%temp%\MakeShortCut.vbs
echo objShortcut.TargetPath="%progdir%\%progexe%">>%temp%\MakeShortCut.vbs
echo objShortcut.Description="%beschreibung%">>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory="%progdir%">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs

cscript //nologo %temp%\MakeShortCut.vbs

del %temp%\MakeShortCut.vbs

pause

Allerdings kommt dann, wenn ich die .bat (welche auf dem Server liegt) ausführe folgende Meldung:
"\\Servername\Pfad"
CMD.EXE wurde mit dem oben angebenen Pfad als aktuellem Verzeichnis gestartet
UNC-Pfade werden nicht unterstützt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.

Und danach stoppt er und macht gar nichts mehr face-sad
Was hat das zu bedeuten? o.O
Mitglied: DorJo1990
DorJo1990 11.08.2009 um 14:33:27 Uhr
Goto Top
Mein fehler... kleiner Tippfehler (Skriptpfad und Scriptpfad *rotwerd*)! DANKE für eure Hilfe!

MfG

DorJo
Mitglied: bastla
bastla 11.08.2009, aktualisiert am 18.10.2012 um 18:39:01 Uhr
Goto Top
Hallo DorJo1990!
kleiner Tippfehler
Könnte mir natürlich nie passieren ... *beim Lügen nichtmal rotwerd*

Falls Du übrigens tatsächlich einmal mit dem UNC-Pfad-"Feature" der CMD-Shell konfrontiert sein solltest -dazu hatte Ein grosses Problem für mich - ein kleines für euch - DOS - Netzwerkumgebung

Grüße
bastla