11/10/08 12:16:55.81
set DNAME="フォルダネームを手入力"については全て問題なく?出来ました。
しかし、ドロップしたフォルダについては"タイトル"(&入り)だけ出来ませんでした。
名前がabc&defだとしたら、一番最初のset DNAME="%~nx1%"で&の手前のabcまでしか入らないみたいでした。
何度も晒して恐縮なんですが、また暫定のbatを下記に書いておきます。
もしよろしければアドバイスを頂るとありがたいです。
@echo on メイン
setlocal disabledelayedexpansion
set DNAME="%~nx1%"
echo %DNAME%|find "(" 1>nul
if errorlevel 1 ( set DTITLE=%DNAME%
) else ( call :DEL_GENRE )
echo %DTITLE%
echo %DTITLE%|find "]" 1>nul
if not errorlevel 1 ( call :DEL_LABEL )
echo %DTITLE%
echo %DTITLE%|findstr /r /c:"^. ." 1>nul
if not errorlevel 1 ( call :DEL_SFARST )
echo %DTITLE%
echo %DTITLE%|findstr /r /c:"^. ." 1>nul
if not errorlevel 1 ( call :DEL_BFARST )
echo %DTITLE%
echo %DTITLE%|findstr /r /c:". .$" 1>nul
if not errorlevel 1 ( call :DEL_SLAST )
echo %DTITLE%
echo %DTITLE%|findstr /r /c:". .$" 1>nul
if not errorlevel 1 ( call :DEL_BLAST )
echo 完成したタイトル=%DTITLE%
pause
exit /b
110:続き
11/10/08 12:19:50.67
:DEL_GENRE
set DGENRE="%DNAME:*(=%
set DGENRE=%DGENRE:&=^&%
call set DTITLE=%%DNAME:%DGENRE:~1,-1%=%%
set DTITLE=%DTITLE:~0,-2%"
exit /b
:DEL_LABEL
set DTITLE="%DTITLE:*]=%
exit /b
:DEL_SFARST
set DTITLE="%DTITLE:~2%
exit /b
:DEL_BFARST
set DTITLE="%DTITLE:~2%
exit /b
:DEL_SLAST
set DTITLE=%DTITLE:~0,-2%"
exit /b
:DEL_BLAST
set DTITLE=%DTITLE:~0,-2%"
exit /b
また、現在はいよいよbatクリックでその階層に表示されている、全てのフォルダから"タイトル"を抜く処理に取り掛かっているのですが、これもうまいこといきません。例えば3行目を
for /D %%X in (*) do ( 改行 set DNAME="%%~X"
に置き換えて、forの〆である「)」をどこにおけば良いのか試行錯誤してるのですが未だ成功しません。また、他には3行目に
for /D %%X in (*) do ( call :LOOP ) 改行 pause 改行 exit /b 改行 改行 :LOOP 改行 set DNAME="%%~X"
と置き換えてみましたが、%~X自体が無効になってしまいました。ホント質問ばかりで恐縮なんですが、どうか叱咤ご鞭撻のほどよろしくお願いします。
111:デフォルトの名無しさん
11/10/08 12:29:40.60
DEL_(S,B)FARSTなんて言葉ないですね、デリート(スモール、ビック)FIRSTの意味です。それと
>>103,>>104
ありがとうございます。さっそく使わせて頂きました。
何度も連投して申し訳ないのですが、もう少しの間だけお相手お願い致します。