无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5387|回复: 21

[求助] 请教, 能否用.bat从.txt中找出号码并创建交件夹?

[复制链接]
发表于 2016-11-7 22:58:43 | 显示全部楼层 |阅读模式
请教, 能否用.bat从.txt中找出号码并创建交件夹?

例如我有C:\1\1.txt 和 C:\1\1.bat 和 C:\2

1.txt内只有号吗00027, 当我连行1.bat, 会创建交件夹C:\2\00027, 之后会把txt内的00027改成00028. (每次都增加一个数字, 来等待下一次使用时创建00028交件夹).


谢谢.
发表于 2016-11-8 07:06:32 | 显示全部楼层
本帖最后由 tools241 于 2016-11-8 14:36 编辑

UnxUtils仿unix命令.rar  (2.8M) , 载点网盘: http://pan.baidu.com/s/1mgEBMkS

如何利用 仿unix/linux命令 sed 一次替换文字中的 "某些相似性的字串" ==>
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=383106



REM 利用 仿unix命令(请将下列3个*.EXE档复制过来使用 ) :
REM 1.改字串用法 sed.exe  --help
REM 2.计算用法   expr.exe  --help

REM 3.显示字串   echo.exe  --help

编辑 1.BAT 如下:

@echo off

echo.exe @echo off\n > tmp.bat

rem ^ 表示为文字开头, 将开头替换成
md C:\2\
sed.exe -e "s/
^/md C:\2\/" < C:\1\1.txt >> tmp.bat
echo.exe \n >> tmp.bat

sed.exe -e "s/^/expr.exe 100001 + /" < C:\1\1.txt >> tmp.bat
echo.exe \n >> tmp.bat

REM 删第一个字: . 为任意一个字
tmp.bat |  sed.exe -e "s/.//" > C:\1\1.txt

点评

谢谢. 已下载来研究学习.  详情 回复 发表于 2016-11-8 14:45
谢谢. 这个比较复习, 3楼那比较简单可行, 但创建交件夹出了问题.  详情 回复 发表于 2016-11-8 14:10
回复

使用道具 举报

发表于 2016-11-8 09:47:31 来自手机 | 显示全部楼层
  1. @echo off
  2. for /f "usebackq" %%a in ("C:\1\1.txt") do set filenum=%%a
  3. title 创建 %filenum% 文件夹
  4. if not %filenum% equ 99999 (md "c:\2\%filenum%") else (title 已达到 99999 将退出 & pause & exit)
  5. set /a num=1%filenum%+1
  6. set num=%num:~-5%
  7. echo %num% > "C:\1\1.txt"
  8. pause
复制代码

点评

在 @echo off 后面袈裟 setlocal ENABLEDELAYEDEXPANSION  详情 回复 发表于 2016-11-21 10:09
回复

使用道具 举报

发表于 2016-11-8 09:48:30 来自手机 | 显示全部楼层
如果1.txt中只有号码没有其它内容的话

点评

1.txt中是只有五位数的号码, 没有其它内容的. 试了运行, 1.txt会自动增加数字, 但C:\2内没有创建交件夹. 谢谢.  详情 回复 发表于 2016-11-8 13:33
回复

使用道具 举报

 楼主| 发表于 2016-11-8 13:33:02 | 显示全部楼层
nttwqz 发表于 2016-11-8 09:48
如果1.txt中只有号码没有其它内容的话

1.txt中是只有五位数的号码, 没有其它内容的.
试了运行, 1.txt会自动增加数字, 但C:\2内没有创建交件夹.

谢谢.

点评

Win7以上可能需要管理员权限运行,WinXP测试一切正常  详情 回复 发表于 2016-11-8 13:34
回复

使用道具 举报

发表于 2016-11-8 13:34:24 来自手机 | 显示全部楼层
clautton 发表于 2016-11-8 13:33
1.txt中是只有五位数的号码, 没有其它内容的.
试了运行, 1.txt会自动增加数字, 但C:\2内没有创建交件夹. ...

Win7以上可能需要管理员权限运行,WinXP测试一切正常

点评

我的是Win7 Pro. 不是管理员权限的问题.  详情 回复 发表于 2016-11-8 14:03
回复

使用道具 举报

 楼主| 发表于 2016-11-8 14:03:34 | 显示全部楼层
nttwqz 发表于 2016-11-8 13:34
Win7以上可能需要管理员权限运行,WinXP测试一切正常

我的是Win7 Pro. 不是管理员权限的问题.

点评

右键以管理员权限运行也不行?? 我回去在Win10上试试……  详情 回复 发表于 2016-11-8 15:34
回复

使用道具 举报

 楼主| 发表于 2016-11-8 14:10:49 | 显示全部楼层
tools241 发表于 2016-11-8 07:06
UnxUtils仿unix命令.rar  (2.8M) , 载点网盘: http://pan.baidu.com/s/1mgEBMkS

如何利用 仿unix/linux ...

谢谢. 这个比较复习, 3楼那比较简单可行, 但创建交件夹出了问题.

点评

对 "仿unix命令" 而言, 大大的问题算是太简单, 牛刀小试而已.  详情 回复 发表于 2016-11-8 14:25
回复

使用道具 举报

发表于 2016-11-8 14:25:29 | 显示全部楼层
本帖最后由 tools241 于 2016-11-8 14:37 编辑
clautton 发表于 2016-11-8 14:10
谢谢. 这个比较复习, 3楼那比较简单可行, 但创建交件夹出了问题.


对 "仿unix命令" 而言, 大大的问题太简单,
"仿unix命令" 可解决极端复杂的 "字串处理" 问题,
有兴趣者可参考文中
范例.

例: 如果 1.txt 中不是 00027 而是 abcxy00027poq, 仍可轻易提取出其中的 00027

点评

希望能用你那, 不想加载exe.  详情 回复 发表于 2016-11-8 14:38
回复

使用道具 举报

 楼主| 发表于 2016-11-8 14:38:50 | 显示全部楼层
tools241 发表于 2016-11-8 14:25
对 "仿unix命令" 而言, 大大的问题太简单,
"仿unix命令" 可解决极端复杂的 "字串处理" 问题,
有兴趣 ...

希望能用你那, 不想加载exe.

回复

使用道具 举报

 楼主| 发表于 2016-11-8 14:45:46 | 显示全部楼层
tools241 发表于 2016-11-8 07:06
UnxUtils仿unix命令.rar  (2.8M) , 载点网盘: http://pan.baidu.com/s/1mgEBMkS

如何利用 仿unix/linux ...

谢谢. 已下载来研究学习.
回复

使用道具 举报

发表于 2016-11-8 15:34:17 来自手机 | 显示全部楼层
clautton 发表于 2016-11-8 14:03
我的是Win7 Pro. 不是管理员权限的问题.

右键以管理员权限运行也不行??

我回去在Win10上试试……
回复

使用道具 举报

发表于 2016-11-8 18:41:37 来自手机 | 显示全部楼层
已测试,一切正常,不需要右键管理员权限直接双击即可(UAC默认)

点评

我的是英文版Win7 Pro, 原来是中文字的问题. 我把中文字删除就一切正常了. Thank you.  详情 回复 发表于 2016-11-8 19:33
回复

使用道具 举报

 楼主| 发表于 2016-11-8 19:33:46 | 显示全部楼层
nttwqz 发表于 2016-11-8 18:41
已测试,一切正常,不需要右键管理员权限直接双击即可(UAC默认)

我的是英文版Win7 Pro, 原来是中文字的问题. 我把中文字删除就一切正常了.

Thank you.
回复

使用道具 举报

发表于 2016-11-21 09:25:31 | 显示全部楼层
大家有什么好看法 都说一下吧












重庆民间道士道法驱邪,收徒弟
回复

使用道具 举报

发表于 2016-11-21 10:09:39 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2016-11-21 10:11 编辑


在 @echo off 后面加上
setlocal ENABLEDELAYEDEXPANSION

话说这种功能的脚本,不需要第三方软件支持。

点评

??? 为何在延迟? 我没有使用第三方软件。  详情 回复 发表于 2016-11-21 10:59
回复

使用道具 举报

发表于 2016-11-21 10:59:23 来自手机 | 显示全部楼层
dos时代菜鸟 发表于 2016-11-21 10:09
在 @echo off 后面加上
setlocal ENABLEDELAYEDEXPANSION



???

为何要延迟?

我没有使用第三方软件。

点评

就是 说你那个 我比较看好,因为没有用第三方软件 至于为啥要 setlocal 你自己试一下不就知道了?呵呵, 如果不设置,for里面的 变量 有效范围会 只对当次 有效,也就起不到 循环效果了  详情 回复 发表于 2016-11-25 20:48
回复

使用道具 举报

发表于 2016-11-25 20:48:02 | 显示全部楼层
nttwqz 发表于 2016-11-21 10:59
???

为何要延迟?

就是 说你那个 我比较看好,因为没有用第三方软件
至于为啥要 setlocal 你自己试一下不就知道了?呵呵,
如果不设置,for里面的 变量 有效范围会 只对当次 有效,也就起不到 循环效果了

点评

我在for中设置的变量未在for里面二次使用,文本里面只有一个数字,没有第二行内容,只用一次,变量不需要更新,况且这个批处理不需要循环,何来延迟一说? 刚试了,将末尾的 pause 改成 %0 循环正常!  详情 回复 发表于 2016-11-26 22:00
回复

使用道具 举报

发表于 2016-11-26 22:00:00 | 显示全部楼层
dos时代菜鸟 发表于 2016-11-25 20:48
就是 说你那个 我比较看好,因为没有用第三方软件
至于为啥要 setlocal 你自己试一下不就知道了?呵呵,
...

我在for中设置的变量未在for里面二次使用,文本里面只有一个数字,没有第二行内容,只用一次,变量不需要更新,况且这个批处理不需要循环,何来延迟一说?

刚试了,将末尾的 pause 改成 %0 循环正常!

点评

有道理,是我 糊涂了.呵呵  详情 回复 发表于 2016-11-26 22:04
回复

使用道具 举报

发表于 2016-11-26 22:04:14 | 显示全部楼层
nttwqz 发表于 2016-11-26 22:00
我在for中设置的变量未在for里面二次使用,文本里面只有一个数字,没有第二行内容,只用一次,变量不需要 ...

有道理,是我 糊涂了.呵呵

点评

我猜,你想的可能是楼主的文本是每行一个数字,有2行以上,根据每行的数字创建文件夹,此时就需要变量延迟了!  详情 回复 发表于 2016-11-26 22:28
回复

使用道具 举报

发表于 2016-11-26 22:28:28 | 显示全部楼层
dos时代菜鸟 发表于 2016-11-26 22:04
有道理,是我 糊涂了.呵呵

我猜,你想的可能是楼主的文本是每行一个数字,有2行以上,根据每行的数字创建文件夹,此时就需要变量延迟了!
回复

使用道具 举报

发表于 2017-1-10 19:15:55 | 显示全部楼层
读十年语文,不如顶半天帖子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-17 07:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表