- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
15 :デフォルトの名無しさん[sage]:2017/03/16(木) 02:25:05.07 ID:iKA3O6Cf - >>14
実際の有効なパスが対象なんだから 問題となるのは上に出てきたequalを含んだフォルダがある場合だけだろう setlocal echo %cd%>tmpfile for %%i in (tmpfile) do set /a size=%%~zi-2 del tmpfile if %size% neq 3 set /a size+=1 for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%size%%%" call echo ".\%%p%%" ) endlocal
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
16 :デフォルトの名無しさん[sage]:2017/03/16(木) 02:32:32.21 ID:iKA3O6Cf - 肝心なのは、文字列操作、表示まで扱う場合は
文字列を必ず""で括るようにすること & % ^ 等を含んでると括ってないとおかしくなる
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
18 :デフォルトの名無しさん[sage]:2017/03/16(木) 11:46:49.75 ID:iKA3O6Cf - >>17
ファイルサイズじゃ根本的にダメだったね (それにecho %cd%も""で括ってなきゃいけなかったし) call :length "%cd%" n for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%n%%%" call echo ".\%%p%%" ) goto :eof :length setlocal set s=%1 set n=0 :length_1 call set "c=%%s:~%n%,1%%" if defined c set /a n+=1&goto :length_1 if %n% neq 5 set /a n+=1 endlocal&set /a %2=%n%-2 goto :eof
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
19 :デフォルトの名無しさん[sage]:2017/03/16(木) 12:49:57.48 ID:iKA3O6Cf - 訂正
call :length cd n for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%n%%%" call echo "%%p%%" ) goto :eof :length setlocal set n=0 :length_1 call set "c=%%%1:~%n%,1%%" if defined c set /a n+=1&goto :length_1 if %n% neq 3 set /a n+=1 endlocal&set /a %2=%n% goto :eof
|