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

Printed on: June 4, 2024 at 14:06 o'clock

Member: bastla
bastla Aug 11, 2009 at 11:22:47 (UTC)
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
Member: DorJo1990
DorJo1990 Aug 11, 2009 at 12:10:17 (UTC)
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
Member: DorJo1990
DorJo1990 Aug 11, 2009 at 12:33:27 (UTC)
Goto Top
Mein fehler... kleiner Tippfehler (Skriptpfad und Scriptpfad *rotwerd*)! DANKE für eure Hilfe!

MfG

DorJo
Member: bastla
bastla Aug 11, 2009, updated at Oct 18, 2012 at 16:39:01 (UTC)
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