Wie erhalte ich den Dateinamen einer Symboldatei in einem Ordner zum Erstellen / Aktualisieren der desktop.ini für Ordner?
Ich benötige Hilfe beim Zurückgeben des Dateinamens einer Datei in einem Ordner.
Ich habe einige Male andere Fragen gelesen und die Antwort scheint zu sein:
for /d %F in (*.*) do echo %~nxF
Obwohl dies für alle anderen zu funktionieren scheint, gibt es eine Ausnahme, wenn ich dies in einer Batch-Datei ausführe und besagt, dass '~ nxF' zu diesem Zeitpunkt nicht erwartet wird.
Ich versuche, eine Batch-Datei zu erstellen, die den Namen der Symboldatei liest, und dann die spezifischen Informationen einzugebendesktop.ini
und schließlich diese Datei mit den entsprechenden Rechten oder Attributen erstellen.
@echo off
set NAME=%~dp0
for %%* in (.) do set NAME=%%~n*
set FOLDERICO=%NAME%
set ICONSIZES=16 24 32 48 64 128 256
set FOLDERINI=Desktop.ini
attrib +s "%CD%"
if exist %FOLDERINI% attrib -s -h %FOLDERINI%
echo [.ShellClassInfo] > %FOLDERINI%
echo IconResource=\[Video]\[HD Films]\%FOLDERICO%\Icon\%FOLDERICO%.ico,0 >> %FOLDERINI%
if not "%2"=="" (
echo FolderType=%2 >> %FOLDERINI%
)
attrib -a +s +h %FOLDERINI%
Ich denke, dass der Code irgendwie verbessert werden könnte, um ihn von einem Wurzelverzeichnis im Gegensatz zu dem spezifischen Ordner auszuführen.
BEARBEITEN: Meine Datei wurde so aktualisiert, dass sie jetzt so aussieht:
@ECHO OFF
attrib +s "%CD%"
set ICODIR=%CD%\Icon\
for %%F in ("%ICODIR%"*.ico) do set ICO=%%~nxF
echo %ICO%
set ICOINI=Desktop.ini
if exist %ICOINI% attrib -s -h %ICOINI%
echo [.ShellClassInfo] > %ICOINI%
echo IconResource=%ICODIR:~2%%ICO%,0 >> %ICOINI%
if not "%2"=="" (
echo FolderType=%2 >> %ICOINI%
)
attrib -a +s +h %ICOINI%
Pause
Was ich in eine for-Schleife einfügen muss, um jedes Unterverzeichnis des Roots zu durchsuchen.