我不确定您是否能够在批处理脚本中获得类似的文件属性。我建议使用 Python 之类的东西。这是另一个线程的链接,该线程建议为此使用 PIL.imaging 库。
如果您有兴趣仔细阅读这条路线但不知道任何 Python,请告诉我,我可以为此编写一个快速脚本。
安装 Python 的说明
如前所述,您需要安装 Python才能运行。我还发现 PIL 是第三方库,因此您还需要下载并安装它(确保选择与您的 python 安装相同的版本,例如,如果您在 64 位上安装了 Python 2.7,则需要“ Pillow-2.1.0.win-amd64-py2.7.exe" 从这里)。
完成安装后,您可以通过打开命令提示符 (cmd) 并输入c:\python27\python.exe
(如果您在 PATH 环境变量顶部添加 c:\python27,您只需键入“Python”)来检查它是否正常工作。这将打开 python 命令提示符。键入print "test"
,您应该会看到打印的 thr 输出exit()
。
安装 Python 后,您可以创建脚本。这里有一些代码可以满足您的要求(列出从具有 1 1 1 宽度高度的基本路径到文件中找到的给定扩展名的所有文件)。
在下面的代码中打开文本编辑器,例如记事本粘贴并保存为“image_attr.py”或您决定使用的任何名称:
from PIL import Image
import os, sys
def main():
# if a cmd line arg has been passed in use as base path...
if len(sys.argv) > 1:
base_path = sys.argv[1]
# else use current working dir...
else:
base_path = os.getcwd()
# image file extensions to be included, add or remove as required...
ext_list = ['.bmp', '.jpg']
# open output file...
outfile = os.path.join(base_path,'infofile.txt')
file_obj = open(outfile, 'wb')
# walk directory structure...
for root, dirs, files in os.walk(base_path):
for f in files:
# check of file extension is in list specified above...
if os.path.splitext(f)[1].lower() in ext_list:
f_path = os.path.join(root, f)
width, height = Image.open(f_path).size
output = f_path + ' 1 1 1 ' + str(width) + ' ' + str(height) +'\r\n'
file_obj.write(output)
file_obj.close()
if __name__ == '__main__':
main()
保存并记住文件的路径,我将c:\python27\image_attr.py
在此示例中使用。然后,您可以从 cmd 或从传递基本路径参数的批处理脚本调用它,例如:
python c:\python27\image_attr.py E:\Users\Prosserc\Pictures
请注意,任何带有空格的争论都应该用双引号括起来。
请让我知道,如果你有任何问题。
编辑
对于 Python 3,理论上的修改应该是最少的。在这种情况下,我将输出写入屏幕而不是文件,但从 cmd 重定向到文件:
from PIL import Image
import os, sys
def main():
# if a cmd line arg has been passed in use as base path...
if len(sys.argv) > 1:
base_path = sys.argv[1]
# else use current working dir...
else:
base_path = os.getcwd()
# image file extensions to be included, add or remove as required...
ext_list = ['.bmp', '.jpg']
# walk directory structure
for root, dirs, files in os.walk(base_path):
for f in files:
# check of file extension is in list specified above...
if os.path.splitext(f)[1].lower() in ext_list:
f_path = os.path.join(root, f)
width, height = Image.open(f_path).size
output = f_path + ' 1 1 1 ' + str(width) + ' ' + str(height) +'\r\n'
print(output)
if __name__ == '__main__':
main()
致电:
python c:\python27\image_attr.py E:\Users\Prosserc\Pictures > infofile.txt