【问题标题】:Get a files name into a msg batch将文件名放入 msg 批处理
【发布时间】:2011-05-19 14:17:48
【问题描述】:

在我之前的帖子中,我做了一批(见下文)

    @ECHO OFF

XCOPY "%cd%\CTB\*.CTB" c:\ICT\AutoCAD_2010\CTB\

MSG * Hello %USERNAME%, Your CTB was successfully transferred.

exit

我怎样才能让消息显示文件名(假设名称不时变化)

【问题讨论】:

    标签: file batch-file filenames


    【解决方案1】:

    如果没有人想出更优雅的解决方案,您总是可以求助于垃圾邮件:-)

    (在批处理文件中,你需要从命令行 %p %p)

    for %%p in (%cd%\CTB\*.CTB) do MSG * Hello %USERNAME%, %%p was copied to C:\ICT\Auto...
    

    例如我用过的:

    C:\Users\Stephen>for %p in ("D:\My Documents\Youcam\*.jpg") do MSG * Stephen %p is here
    

    用该目录中的所有可用图形向自己发送垃圾邮件。

    【讨论】:

    • 是的,哈哈,我需要向我工作的一些愚蠢的驴子发送垃圾邮件。有些人需要被勺子喂饱所有发生的事情,“现在点击”现在'拖动,现在。是的,这是一个可怕的世界,我的 IT 经理现在在我身后,星期四他用谷歌搜索了宝马和圣诞灯,我花了很多时间来修复他造成的事情,哈哈
    【解决方案2】:

    由于XCOPY 显示复制的文件的名称,因此可以读取输出并将环境变量设置为第一行(假设总是有一个文件要复制):

    @ECHO OFF
    
    SET filename=
    FOR /F "delims=" %%R IN ('XCOPY "%cd%\CTB\*.CTB" c:\ICT\AutoCAD_2010\CTB\') DO (
      IF NOT DEFINED filename SET "filename=%%R"
    )
    
    MSG * Hello %USERNAME%, Your "%filename%" was successfully transferred.
    
    EXIT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 2011-05-20
      相关资源
      最近更新 更多