标题: [文本处理] 批处理循环获取后替换问题 [打印本页]
作者: moling 时间: 2022-10-21 11:11 标题: 批处理循环获取后替换问题
获取当前目录下的xlsx文件名后替换,将包含A订单的替换为空,.xlsx(包含.)替换为,(半角英文逗号),再输出到aa文本文档
从空行下面的替换开始出问题了
@echo off&setlocal enabledelayedexpansion
cd.>%cd%\aa.txt
echo= >>aa.txt
echo= >>aa.txt
for /r %cd% %%i in (*.xlsx) do (
echo %%~nxi
set "abc=%%~nxi"
set "abc=!abc: =A订单_"
set "abc=!abc: =B订单_"
set "abc=!abc:,=.xlsx"
echo !abc!>>aa.txt
)
作者: qixiaobin0715 时间: 2022-10-21 11:26
本帖最后由 qixiaobin0715 于 2022-10-21 11:30 编辑
变量后面的叹号跑哪了?
替换是不是反了!
前面代码应当也有问题。
请举例说明你到底要实现什么目的。
作者: Batcher 时间: 2022-10-21 11:34
回复 1# moling
请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,可以用阿里云盘或百度网盘。
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: moling 时间: 2022-10-21 13:57
回复 2# qixiaobin0715
例:
文件夹中包含
A订单123456789.xlsx
A订单123456788.xlsx
A订单123456787.xlsx
A订单123456786.xlsx
A订单123456785.xlsx
B订单223456789.xlsx
B订单223456788.xlsx
等文件,我想通过批处理实现文本文档内容为
例:
123456789,
123456788,
123456787,
123456786,
123456785,
223456789,
223456788,
作者: qixiaobin0715 时间: 2022-10-21 14:42
本帖最后由 qixiaobin0715 于 2022-10-21 16:00 编辑
bat保存为ANSI编码- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('dir /s /b /a-d ?订单*.xlsx') do (
- set str=%%~na
- echo,!str:~3!,
- ))>Sum.txt
复制代码
作者: moling 时间: 2022-10-21 16:00
回复 5# qixiaobin0715
这个,!str:~3!,是什么意思
作者: pd1 时间: 2022-10-21 16:02
回复 6# moling
不要前面3个字符,取后面的
作者: moling 时间: 2022-10-21 16:06
回复 7# pd1
谢谢
作者: qixiaobin0715 时间: 2022-10-21 16:07
本帖最后由 qixiaobin0715 于 2022-10-21 16:12 编辑
如果“订单”前不止一个字符,代码可修改为:- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('dir /s /b /a-d *订单*.xlsx') do (
- set str=%%~na
- echo,!str:*订单=!,
- ))>Sum.txt
复制代码
作者: Batcher 时间: 2022-10-21 16:45
回复 6# moling
字符串截取,参考set命令教程第8页
http://bbs.bathome.net/thread-31727-1-1.html
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |