我是批处理文件的新手,尽管已进行了彻底搜索并找到了具有类似主题的主题,但并未涵盖我确切需要的内容。
背景:我有一个excel文件,保存后会生成两个文件,一个.PDF和一个.xlsm。这些文件将保存到“待处理”文件夹中。
它们使用以下命名约定进行命名:公司名称-日期,例如'Daves Plumbing-01-08-13.xlsm''Daves Plumbing-01-08-13.pdf'
处理:每周一次,按公司名称将其手动移动到分别命名的文件夹中,例如C:/ documents / sales / excel / daves plumbing / C:/ dociuments / sales / pdf / daves plumbing /
我很欣赏公司名称中的空格无济于事,但希望我们可以使用-作为分隔符?
最终,我希望创建一个批处理文件,该文件将通过逐步浏览文件夹中的文件,读取公司名称并将每个文件根据名称和扩展名移至相关文件夹来实现上述处理的自动化。
当我决定进行处理时,我可以随时在该文件夹中保存多达50个文件。
非常感谢您的帮助,我希望我提供了足够的信息以查看这是否可行。
非常感谢,阿什
ps作为一个附带说明,我假设我无法在移动PDF文件之前将其作为电子邮件附件发送?例如,执行批处理文件,通过电子邮件将PDF发送到预定义的电子邮件地址,然后将“ pdf”和“ xlsm”都移动到相关文件夹中。这并不重要,只是对批处理功能感到好奇。
编辑以使用其他目标文件夹。不要使用-
批处理文件名,如果您打算在同一文件夹中使用它。
试试这个。它使用文件名中的第一个-作为分隔符,删除最后一个空格(空格),在需要时创建目录,然后将文件移动到适当的文件夹中。
文件名包含!和%可能是一个问题。
@echo off
cd /d "c:\To-Process"
setlocal enabledelayedexpansion
for %%a in (*-*.*) do (
for /f "delims=-" %%b in ("%%a") do (
set "f=%%b"
if /i "%%~xa"==".pdf" (
md "C:/documents/sales/pdf/!f:~0,-1!" 2>nul
move "%%a" "C:/documents/sales/pdf/!f:~0,-1!" >nul
)
if /i "%%~xa"==".xlsm" (
md "C:/documents/sales/excel/!f:~0,-1!" 2>nul
move "%%a" "C:/documents/sales/excel/!f:~0,-1!" >nul
)
)
)
有批处理/ VBS脚本可以发送电子邮件和附件。
Google为其搜索,或使用Blat
或Sendmail
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句