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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage