今天下午项目经理老蔡同志分配给我一个光荣任务,做一个批处理文件把某个文件夹下的.exe文件和所有子目录下的.exe文件复制到另外一个文件夹,并且不复制文件夹结构,也就是所有都放到目标目录下不分级。

上网找了会资料没找着,后来在命令提示符下随便输入几个自己知道的命令看看帮助,发现XCopy很容易就可以实现复制指定目录下文件与所有子目录下文件到目标目录中,于是简单写了一段:

xcopy F:\A\*.exe F:\B\ /S

运行了下,好像可以哦~~于是就跟老蔡说OK啦!结果自己再测试下发现xcopy会把子目录结构也复制过去。。。。晕,那还不如自己复制粘贴呢。于是在命令行提示符窗口下又看了会xcopy的参数说明,就是找不到不复制目录结构的。。。

怎么办。。。还不如我写个C#程序来得快呢。。。可是要用这个程序的同事机器上好像没有.NET运行时啊,.NET运行时有时候就是很气人,关键时候经常发现对方没有装.NET运行环境,比如有时候要跟人家吹牛我做了什么好玩的,运行不了兴致都没了。

用C写吧,打开VS,建了个命令行项目,然后。。。。怎么写?忘记啦。。。写C语言已经是快3年前的事情了,获取目录和子目录我都不记得用什么函数了。上网找了会,各式各样都有,唉,真烦~~不用C写了。

想起昨天晚上翻旧电子书时看到《Windows脚本技术》里有讲到用JScript操作文件呢,于是赶快找出这本书。模仿里面的代码写了一段

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\test.txt");

保存为.js文件, 双击,怎么又是用编辑器开了。。。右击,里面有个“在命令行中运行”,这个应该不是默认的吧,不管了,运行看看。结果啥也没有出现。。。

赶紧再看看书上怎么说,原来下一章才开始讲Windows脚本舍主,嘿嘿,还有一节叫:运行脚本,看来我太心急了,再继续看看。

原来可以做一个.wsf文件运行啊,而且还可以混合不同语言的脚本。。神奇啊。

里面有这样一段示例代码:

<job id="IncludeExample">
   <script language="JScript" src="FSO.JS"/>
   <script language="VBScript">
      ' 获得驱动器 C 的可用空间。
      s = GetFreeSpace("c:")
      WScript.Echo s
   <sScript>
</job>

于是我举一反三,自己做了一个,嘿嘿,经过一番调试,终于做了一个可以复制目录和子目录下所有.exe文件到指定目录的wsf文件,哈哈。

<job id="IncludeExample">
    <script language="JScript" >
        
        var file = "*.exe";    //要复制的文件
        var des = "F:\\B";    //目标目录

        var fso,  f, fs, fc;

        fso = new ActiveXObject("Scripting.FileSystemObject");    //文件系统控件
        
        try
        {
            fso.CopyFile(file, des);
        }
        catch(ex)
        {
        }

        f = fso.GetFolder(".\\");

        fc = new Enumerator(f.SubFolders);

         for ( ; !fc.atEnd(); fc.moveNext())
        {
            try
            {
                fso.CopyFile(fc.item().Path + "\\" + file, des);
            }
            catch(ex)
            {
            }
        }

    </script>
</job>

复制一段《Windows脚本技术》中对WSF文件的定义:

Windows 脚本文件 (*.wsf) 是含有可扩展标记语言 (XML) 代码的文本文档。它综合了几个可增强脚本灵活性的功能。由于 Windows 脚本文件不是特定于引擎的,因此它们可包含与 Windows 脚本兼容的任何脚本引擎中的脚本。它们充当容器。

使用 .wsf 文件,可以在创建脚本时使用以下功能:

.wsf 文件支持 实现
Include 语句 将函数从 VBScript 或 JScript 文件合并到 Windows 脚本宿主项目中。
多引擎 每个文件使用多种脚本语言。
类型库 将常数添加到代码中。
工具 使用任何 XML 编辑器编辑文件。
一个文件中的多项作业 将所有的代码存储在一个位置。

转载于:https://www.cnblogs.com/BG5SBK/archive/2006/05/16/Save_JScript_Into_WSF.html

胡搞瞎搞JScript记(用JScript代替批处理文件)相关推荐

  1. [JZOJ5281]钦点题解--瞎搞+链表

    [JZOJ5281]钦点题解--瞎搞+链表 题目链接 于 暴 力 过 分析 第一眼: 模拟美滋滋?! 然后数据范围...不太对 naiive模拟30pts 然后你交换字符串指针60pts 然后发现可以 ...

  2. android重置系统,安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了!...

    安卓手机越用越卡,恢复出厂设置真有用?别瞎搞,看完就明白了! 现在手机的价格逐渐的开始上升,一部好一点的手机价格还是比较贵的,所以很多人想要节省更多的换机支出,都会想要购买到一款可以使用的比较久的手机 ...

  3. HDU5971【瞎搞】

    题意:略(忙着准备文化课...明天期中考啊.... 思路: 正解就是染色,2-sat搞: AC代码(虽然是错误的...数据水(过踏马的也行啊,起码打脸他啊!) 4 3 1 0 1 2 2 3 3 4 ...

  4. HDU 5600(瞎搞)

    第一场Bestcoder居然爆零..果然是too naive..小聪明全部直接输出"YES"过了pretest,结果被叉也是&%$% 找到规律传递下就好.后来看官方题解感觉 ...

  5. HDU 4923 Room and Moor(瞎搞题)

    瞎搞题啊.找出1 1 0 0这样的序列,然后存起来,这样的情况下最好的选择是1的个数除以这段的总和. 然后从前向后扫一遍.变扫边进行合并.每次合并.合并的是他的前驱.这样到最后从t-1找出的那条链就是 ...

  6. 别再瞎搞数仓了!BAT内部大神:数据仓库不是谁都可以建的

    在我没有进互联网之前,我一直以为数据仓库是所有企业进行数据资产管理的必备工作,但直到我去了很多家企业搞数据之后才发现,原来并不是所有的企业都适合做数据仓库,更不要说数据中台了. 很多企业现在做数据仓库 ...

  7. Wannafly交流赛1: C. 腰带图(瞎搞)

    链接:https://www.nowcoder.com/acm/contest/69/C 来源:牛客网 题目描述 一个n个点m条边的无向图,它若满足以下性质,我们就称它为腰带图: 1.n为>=6 ...

  8. 我的瞎搞开发工具集以及对一些工具的比较

    本文的目的是作为一个记录,不引战,同时为有同样瞎搞爱好者提供一个学习思路--尽量全部推荐和使用免费开源工具,减少版权纠纷,降低学习成本,大概算有用吧 我的技术栈: 实际上有很多并不是很熟,请酌情参考 ...

  9. 使用jsdelivr时不要瞎搞

    8月15日jsdelivr在官网更新了使用条款.虽然不清楚具体更新了哪些内容,但是注意到这几个处被很多人忽略了.瞎搞很容易被jsdelivr阻断连接.以下是需要注意的这几个处. 4. Prohibit ...

最新文章

  1. IOS初级:NSKeyedArchiver
  2. 听完李厂长和雷布斯在乌镇讲AI段子,我突然理解为什么这两个男人选择在一起了
  3. 黑科技,教你用Python打电话,控制手机技术,快来学一下
  4. FCKeditor在线文本编辑器初级应用
  5. 算法 --- 翻转二叉树
  6. android是java_为什么大家都用JAVA写android程序
  7. cobalt strike
  8. 实验11——指针的基础应用
  9. 手机输入法带拼音声调_分享4种给拼音加声调的方法,让你的word更有灵魂
  10. 基于ARM+FPGA低成本高实时Ethercat运动控制器解决方案
  11. 中兴MF667S WCDMA猫Linux拨号笔记
  12. swiper 切换时间_改变Swiper切换和animate.js动画的时间曲线
  13. vue中watch进行ajax,vue watch自动检测数据变化实时渲染的方法
  14. android 代码设置默认浏览器打开,android手机如何设置默认浏览器?
  15. Least Angel Regression
  16. 怎么把PWM信号转为模拟量
  17. 使用Viewpager Indicator实现图片无限轮播
  18. 计算机生命科学研究系,生命科学与计算机科学的结合发展研究
  19. AI不仅要智能,更需要人文:联邦学习重构大数据风控范式
  20. 详谈HTTPS SSL/TLS协议原理

热门文章

  1. 国内五大最贵的两字母域名
  2. 【企业】避免华盛顿合作规律,增强有效合作
  3. 计算机网络与应用初稿,计算机网络原理与应用(第2版)
  4. 知识图谱入门 (九) 知识问答
  5. C语言中变量的作用域和生存期
  6. 材质自发光过曝之后变白的问题
  7. 《我们到底应该怎么吃》读书笔记-- 待续
  8. 实例分割向:Mask R-CNN
  9. 澳洲留学难吗 计算机排名澳洲达伦哥,#澳洲留学# 达伦哥全面解析澳洲DIPLOMA课程!...
  10. MATLAB hilbert谱 纵坐标由归一化频率改为正常频率的方法