秋風的蕭瑟 又見湖邊木葉飛

          歡迎來到梁良 | LonBlog,這里記錄下了我生活點點滴滴。

          [ZT]胡搞瞎搞JScript記(用JScript代替批處理文件)

          今天下午項目經理老蔡同志分配給我一個光榮任務,做一個批處理文件把某個文件夾下的.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 編輯器編輯文件。
          一個文件中的多項作業 將所有的代碼存儲在一個位置。

          posted on 2010-06-08 00:25 梁良 閱讀(574) 評論(0)  編輯  收藏 所屬分類: JavaScript

          <2010年6月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          公告

              歡迎光臨

          常用鏈接

          隨筆分類

          隨筆檔案

          相冊

          .我的網站.

          友情博客

          開源社區

          科技博客

          資料網站

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          Powered by:
          LonLeung
          Copyright © 梁良

          本頁生成時間:2651毫秒

          主站蜘蛛池模板: 任丘市| 湾仔区| 台中县| 迭部县| 花莲县| 双鸭山市| 南宁市| 邵东县| 广平县| 鹿邑县| 通辽市| 浠水县| 德令哈市| 桦甸市| 乡城县| 岳阳市| 洛扎县| 隆德县| 巩留县| 富宁县| 三原县| 德昌县| 唐河县| 大连市| 永康市| 逊克县| 台南县| 大邑县| 长宁区| 资中县| 同江市| 清涧县| 阜新市| 永福县| 武定县| 沁源县| 石城县| 赤水市| 新营市| 昌黎县| 安新县|