[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已结】请教如何截取文件名的一部分作为文件内容

情況是這樣的,我有一些文件 : myfile-1.txt, myfile-2.txt , ......myfile-60.txt,
這些文件都是從一個文件copy而成,文件内有字符串999999,而且是唯一的
爲了區分,我想做如下操作:讀取文件名,然後發現是末尾是-1 ~ -9的情況,將
999999分別替換成999901 ~ 999909, 文件名末尾是-10~-60的,就直接將
999999替換成999910~999960,請教知道的朋友,幫幫忙,謝謝了

最好说一下 999999 在文本中的位置,及文件内容样本

[ 本帖最后由 tireless 于 2009-1-6 10:43 编辑 ]

TOP

  以下代码会去掉空行,请测试:
  1. @echo off
  2. for /l %%i in (1,1,60) do (
  3.     for /f "delims=" %%j in (myfile-%%i) do (
  4.         set "str=%%j"
  5.         setlocal enabledelayedexpansion
  6.         if %%i lss 10 (
  7.             set "str=!str:999999=99990%%i!"
  8.         ) else (
  9.             set "str=!str:999999=9999%%i!"
  10.         )
  11.         (echo !str!)>>new_myfile-%%i.txt
  12.         endlocal
  13.     )
  14. )
  15. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

  1. //業務ヘッダ部
  2. "00222"                  // メッセージ長(データ長+59)(5)
  3. "131011"                 // 電文種別(6)
  4. "2"                      // 業務コード(1)
  5. "000001"                 // 電文通番(6)
  6. "   1V01"                // 仮想サーバ番号(7)
  7. "1S0"                    // 仮想通知ファイル番号(3)
  8. " "                      // 予備(1)
  9. "00"                     // 復帰情報(2)
  10. "1"                      // 応答要/不要(1)
  11. "00179"                  // データ部長(データ長+16)(5)
  12. "01"                     // データ件数(2)
  13. "         "              // 予備(9)
  14. //データヘッダ部
  15. "00174"                  // データ長(データ長+11)(5)
  16. "000000"                 // 会員入力通番(6)
  17. "010"                    // 端末情報(3)
  18. "  "                     // 予備(2)
  19. // 通知共通部
  20. "9"                      // 取引所等区分(1)
  21. "2"                      // システム区分(1)
  22. "1"                      // 取引区分(1)
  23. "A"                      // データ種別コード(1)
  24. "1S0"                    // 仮想通知ファイル番号(3)
  25. "3"                      // ダブリ符号・再送符号(1)
  26. "111111"                 // プリント通番(6)
  27. "111111"                 // 会員別通番(6)
  28. "1N1"                    // 仮想クライアント番号(3)
  29. "1921"                   // 注文受付時刻(4)
  30. "9999901"                 // 注文受付番号(7)
  31. "123"                    // 訂正入力端末番号(3)
  32. "    "                   // 訂正処理時刻(4)
  33. "    "                   // 約定時刻(4)
  34. "       "                 // 約定番号(7)
  35. "0000"                   // エラーコード(4)
  36. "      "
  37. "      "
  38. "    "                 // 予備(16)
  39. //データ部
  40. "1"                      // データ種別コード(1)
  41. "12345"                  // 会員コード(5)
  42. "  "                     // 予備(2)
  43. "900017910"              // 銘柄コード(9)
  44. " "                      // 予備(1)
  45. "1"                      // 売買区分(1)
  46. "7"                      // クロス条件(1)
  47. "1000000000"             // 注文値段(10)
  48. "10000000"               // 注文数量(8)
  49. "9"                      // 数量限度解除(1)
  50. "1"                      // 自己委託区分(1)
  51. "1"                      // 実空区分(1)
  52. "I"                      // 信用区分(1)
  53. "98765432109876543210"   // 社内番号(20)
  54. "          "
  55. "          "
  56. "         "              // 予備(29)
复制代码
文件内容如上所示

試了一下版主給的代碼,成功了,謝謝版主的幫助
最開始沒有成功是因爲日文的關係

[ 本帖最后由 sniperhgy 于 2009-1-6 11:04 编辑 ]

TOP

为方便今后他人搜索,建议使用简体中文发帖,尤其是帖子标题。
如果你使用的是繁体系统,可以用http://www.google.cn/language_tools?hl=zh-CN翻译一下。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

哦,知道了,我用的是日文系統,沒有簡體字庫,下次用版主給的翻譯再發

TOP

返回列表