我有一个项目,需要解压缩包含.xls
文件的文件,然后运行Python脚本将该文件转换为.xlsx
。我需要通过Windows任务调度器执行Windows批处理文件来完成此操作。我在Superuser上找到了一些解压文件的代码,但它不会循环,您必须显式键入要解压的文件名
以下是解压缩代码:
@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:\Test Folder\" "C:\Test Folder\File1.zip"
exit /b
:UnZipFile <ExtractTo> <newzipfile>
IF "%~dp0"=="" GOTO Continue
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs% echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%
以下是我的Python代码:
import win32com.client as win32
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--sourcefilepath')
parser.add_argument('--sourcefilename')
args = parser.parse_args()
fname = r"{sourcefilepath}{sourcefilename}".format(sourcefilepath=args.sourcefilepath,sourcefilename=args.sourcefilename)
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)
wb.SaveAs(fname + "x", FileFormat = 56)
wb.Close()
excel.Application.Quit()
quit()
任何帮助都会很好
只是对特殊角色的一些小修改 需要在
echo
命令中转义。 将goto continue
替换为exit /b 1
。 添加了简单的for
循环以获取所有zip文件名它将获取当前目录中的xls文件 一旦python脚本启动,就删除xls文件 已完成SaveAs任务
如果选中为OK,则删除python命令前面的
echo
或者试试这个python代码,它可以 循环、解压缩和xls到xlsx
它不设置当前工作目录 哪个任务调度器可以设置它,或者您可以 可以将其添加到python脚本中进行设置
相关问题 更多 >
编程相关推荐