无忧启动论坛

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

excel合并多个单元格的内容用于批处理

[复制链接]
1#
发表于 2018-12-19 08:45:29 | 显示全部楼层
本帖最后由 jiguo 于 2018-12-19 09:11 编辑

又是excel、又是word、又是记事本的,其实记事本+cmd就可以简单处理了:

1、运行输入cmd回车,打开命令提示符窗口,定位到cab包所在目录,输入:dir /a-d /b /s >cab.txt 并回车;
2、在cab目录会生成一个cab.txt文件,用记事本打开,内容形式如下:

D:\Esd\windows10.0-kb4469342-x64.cab
D:\Esd\windows10.0-kb4469344-x64.cab
D:\Esd\Windows10.0-KB4469348-x64.cab
D:\Esd\windows10.0-kb4470788-x64.cab

3、记事本中点编辑,替换:把“D:\Esd\”,替换成:“Dism /online /add-package /packagepath:”,点全部替换,搞定前半截;
4、继续替换:把“.CAB”,替换成:“.CAB  /NoRestart /quiet /ScratchDir:D:\Tpr”,点全部替换,搞定后半截;
5、最后在txt文件最前面一行添加“@Echo Off&Pushd %~dp0“,并回车,保存文件,改cab.txt文件为cab.bat,搞定。

完稿后cab.bat文件结构形式如下:

@Echo Off&Pushd %~dp0
Dism /online /add-package /packagepath:windows10.0-kb4469342-x64.CAB  /NoRestart /quiet /ScratchDir:D:\Tpr
Dism /online /add-package /packagepath:windows10.0-kb4469344-x64.CAB  /NoRestart /quiet /ScratchDir:D:\Tpr
Dism /online /add-package /packagepath:windows10.0-kb4469348-x64.CAB  /NoRestart /quiet /ScratchDir:D:\Tpr
Dism /online /add-package /packagepath:windows10.0-kb4470788-x64.CAB  /NoRestart /quiet /ScratchDir:D:\Tpr

点评

dir 加参数/s可以获得绝对路径,便于替换 ================================ 当然,for循环处理更方便  详情 回复 发表于 2018-12-19 09:23

评分

参与人数 1无忧币 +5 收起 理由
yjqd + 5 学习了

查看全部评分

回复

使用道具 举报

2#
发表于 2018-12-19 09:01:22 | 显示全部楼层
本帖最后由 jiguo 于 2018-12-19 09:06 编辑


记事本用Notedat2替换,编辑代码更方便。

另外需要每行加一个“echo.”(也就是空一行的意思),在每行代码后面直接跟“&echo.”就可以了,效果一样,echo.代码无需独立一行。
回复

使用道具 举报

3#
发表于 2018-12-19 09:36:55 | 显示全部楼层
yjqd 发表于 2018-12-19 09:23
dir 加参数/s可以获得绝对路径,便于替换
================================
当然,for循环处理更方便


对于我等小白,你不完整贴出代码,光说for更简单,我们不懂,等于没说,也起不到啥帮助。

点评

我写命令水平不行,slore、nttwqz 等水平高 for /f "delims=" %%a in ('dir /a-d /b') do (echo Dism /online /add-package /packagepath:%%a /NoRestart /quiet /ScratchDir:D:\Tpr)  详情 回复 发表于 2018-12-19 10:31
回复

使用道具 举报

4#
发表于 2018-12-19 11:23:44 | 显示全部楼层
本帖最后由 jiguo 于 2018-12-19 11:26 编辑
yjqd 发表于 2018-12-19 10:31
我写命令水平不行,slore、nttwqz 等水平高

for /f "delims=" %%a in ('dir /a-d /b') do (echo Dism  ...



,对,你这个更方便,不用替换来替换去的:

方案1生成批处理文件:
命令行窗口直接运行,两步生成批处理cab.bat:
1、echo ^@Echo Off^&Pushd ^%~dp0>cab.bat
2、for /f "delims=" %a in ('dir /a-d /b') do (echo Dism /online /add-package /packagepath:%a /NoRestart /quiet /ScratchDir:D:\Tpr>>cab.bat)

或 用批处理运行生成cab.bat(批处理中需多个%):
@Echo Off&Pushd %~dp0
@echo ^@Echo Off^&Pushd ^%%~dp0>cab.bat
for /f "delims=" %%a in ('dir /a-d /b') do (echo Dism /online /add-package /packagepath:%%a /NoRestart /quiet /ScratchDir:D:\Tpr>>cab.bat)


方案2不生产成批处理,直接命令行窗口运行补丁整合:
for /f "delims=" %a in ('dir /a-d /b') do (Dism /online /add-package /packagepath:%a /NoRestart /quiet /ScratchDir:D:\Tpr)



点评

如果批处理放在补丁文件夹内,自身名称也要被获取(虽说Dism不行执行bat文件),怎么办 我用的笨办法: for /f "delims=" %%a in ('dir /a-d /b^|find /i /v "%~nx0"') do (echo Dism /online /add-package /packa  详情 回复 发表于 2018-12-19 11:34
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 02:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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