我有一组来自名为“IMG0001”,“IMG0002”的相机的图像......我希望将所有奇数图像移动到另一个文件夹。
如何使用批处理脚本实现此目的?
是否可以编写一个接受不共享公共前缀或相同数字填充的文件名的脚本?
答案 0 :(得分:2)
如果文件名符合8.3约定(基本名称< = 8个字符,没有空格),则以下命令行将起作用(如果在批处理文件中使用,则加倍百分比)。
for %F in (*1.jpg *3.jpg *5.jpg *7.jpg *9.jpg) do move "%%F" "newLocation\"
但如果名称很长或包含空格,则上述内容可能无效,因为长名称可能有一个短名称副本,以奇数或偶数结尾。在执行模式匹配时,DIR和FOR都会查看长名称和短名称。
因此留下了kirilloid's solultion的改进版本,可以适应不使用临时文件。此改编也适用于名称中的空格,大小写混合,文件名中的.jpg以及扩展名等。
for /f "eol=: delims=" %F in ('dir /b /a-d *.jpg^|findstr /irc:"[13579]\.jpg$"') do move "%F" "newLocation"
答案 1 :(得分:1)
example + findstr / regex:
DIR /B -D *.jpg | findstr "[02468][.]jpg" > %TEMP%\DIR.LST
FOR /F %%f IN (%TEMP%\DIR.LST) DO (
move %%f new_dir
)
DEL DIR.LST
我很高兴,如果有人告诉我,如何做到没有tmp文件。在linux上,我习惯了xargs
和反叛。
答案 2 :(得分:0)
假设您只想获取标题字符串的整数部分,则必须对其进行正则表达式并仅保留数字,然后检查模数2是否返回true或false,然后您可以移动它
答案 3 :(得分:0)
以下是非技术方法:
在窗口中排列文件,按名称排序,缩略图。
调整窗口大小,使缩略图分为两列。
使用鼠标窗口选择一列。
我在Windows 7中做到了这一点。
有一个YouTube视频有人为较旧的Windows版本显示此内容: http://www.youtube.com/watch?v=3Kr2sTzpFY4