楼主:
piligo (霹雳狗)
2014-11-07 08:32:20※ 引述《LIAR (玻璃做的大叔)》之铭言:
: 这和其他的“小软件”不一样,不过是windows内建的应该OK吧?
: for /f "tokens=1,1,1" %%a in ('dir /b /o-g-d img*.*') do (
: set /p newname=请输入新档名:
: ren %%a "%newname%.jpg"
: )
: 我希望能够找出最新的一个img*.*档案,并且提示使用者输入新档名,
: 把这个档案改成输入的新档名。
: 目前遇到两个问题:
: 1.他不会只抓第一个档案,而是处理完第一个还会继续第二个,一直做到
: 没有符合的档名为止。
: 2.set /p的参数没有用,会被当成空白。如果是直接到命令列执行这个script,
: 则是会记到前一次执行输入的参数。
: 换句话说第一次输入"1",newname=空白,第二次执行输入"2",newname=1,
: 以此类推。
: 我没有正式学过for的参数,我想请问我应该要如何修改才能达成前面说的要求?
下面可以达成您要的效果,完全不用for
dir /b /o-g-d img*.* >check.txt
set /p a=<check.txt
set /p b=请输入新档名:
ren "%a%" "%b%.jpg"
del check.txt