3
我需要幫助返回位於文件夾中的文件的文件名。如何獲取文件夾中圖標文件的文件名以創建/更新文件夾的desktop.ini文件?
我看過其他問題問了幾次,答案似乎是:
for /d %F in (*.*) do echo %~nxF
儘管這似乎是其他人的工作,當我運行這個批處理文件中有一個例外,美國那'〜nxF'目前預計不會。
我想要做的是創建一個批處理文件,它將讀取圖標文件名,然後將具體信息輸入到desktop.ini
,最後創建具有相應權限或屬性的文件。
@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%
我認爲代碼可以改進某種方式從根目錄運行它,而不是特定的文件夾。
編輯:更新了我的文件,所以現在看起來是這樣的:
@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
,我需要到根的每個子目錄放入for循環掃描。
將'for'命令放在批處理文件中時,必須使用雙%''%''符號而不是單個百分號'%'。另外,'/ d'只用於目錄。 (*。*)中的%% F做echo echo %%〜nxF'請參閱[For /?](http://technet.microsoft.com/en-us/library/bb490909.aspx) –
謝謝,我認爲這是我需要的答案。我儘可能地參考文本和手冊,但他們比我們經常幫助的更困惑我。 –
你有這個工作嗎? vbscript可以接受嗎? –