作者: Bruce.
日時: 2007/11/01(03:34)
Bruce.です。
#スモークチーズはあるかい?

davi さんは書きました (2007/11/01 2:28):
> みなさん  <  こん??は でび です
> 
> 例によって、レベル引き下げに貢献します。
> 
> GIFアニメーションで遊ぼうと思って、連番コピーをする必要が出ました。
> んで、この程度ならバッチでしょ。と…。
> 
> ん〜、for in do ってあったよなぁ、とかすかな記憶を頼りに
> 以下のようにしました。
> 
> ---------------------------------
> @ECHO OFF
> : 連番コピー
> set /p IN=元ファイル名の拡張子以外の部分を指定してください:
> set /p OUT=枝番を半角数字で指定してください:
> if "%IN%"=="" goto end
> if "%OUT%"=="" goto end
> 
> for /l %%E in (1,1,%OUT%) do copy %IN%.bmp %IN%-%%E.bmp > nul
> :end
> ---------------------------------
> 
> でも、これだと枝番の桁数揃えができない。

ひょっとしてこういうことをやりたい?

@echo off
setlocal ENABLEDELAYEDEXPANSION
for /l %%i in (1,1,20) do (
rem echo %%i
set x="000%%i"
echo !x:~-4,-1!
)
endlocal


001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020

> SET /?で、単項演算子なるものを見つけたのですが、これ、どう使うんでしょ?
> こんなにょろ、今まで使ったことないにょろ。
> HELPには"!"と"_"の説明も見あたらないようですし。むぅ。

_ ぢゃなくて - ぢゃないでしょうか。
んで、作用はCとおんなじ。

>set /a x=1+1
2
>set /a x=~1
-2
>set /a x=~0
-1
>set /a x=~1
-2
>set /a x=!1
0
>set /a x=!2
0
>set /a x=!0
1

>set /a x=1<<2
1<< の使い方が誤っています。
>set /a x="1<<2"
4
>set /a x="192>>3"
24


>set /a x="20&2"
0
>set /a x="20&4"
4
>set /a x="8|4"
12
>set /a x="64^32"
96


> 
> んで、
> 
> set /p PAD=枝番の桁数を半角数字1文字で指定してください:
> if "%PAD%"=="" goto end
> 
> を追加して
> 
> for /l %%E in (1,1,0000000000%OUT%) do copy %IN%.bmp %IN%-%E:~-%PAD%%.bmp > nul
> 
> ではダメみたい。
> OUTの前に付けても数値として処理されているんでしょうねえ。
> 
> 知らないうちにいろいろ増強されていてCMD.EXEも侮りがたし。
> 
> 結局、GIFアニメーションそっちのけ、ってどうよ。> 自分
> 
> でび  http://homepage1.nifty.com/davi/

んじゃわしは寝るにょろ。

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I?
  mail kbk [at] kt.rim.or.jp
        web  www.kt.rim.or.jp/~kbk/zakkicho/
             homepage3.nifty.com/farstar/