标题: [文件操作] [已解决]:将此重命名和压缩的两个批处理合并 [打印本页]
作者: brothersonline 时间: 2015-3-29 15:56 标题: [已解决]:将此重命名和压缩的两个批处理合并
本帖最后由 brothersonline 于 2015-3-30 01:23 编辑
求助:将此两个批处理文件合并
批处理1:将拖进去的文件处理后重命名:- @echo off
- cd /d %~dp1
- ren "%~nx1" 1.txt &type 1.txt >1&ren 1.txt "%~nx1"
- ren 1 "★%~nx1" &exit
复制代码
批处理2:将拖进去的文件用winrar压缩,并生成日志:- For /f "tokens=2 delims==" %%a IN ('ftype^|find "WinRAR"') DO (
- Set rar=%%a
- Goto :next
- )
- :next
- Set rar=%rar: "%1"=%
- For %%a IN (%*) DO (
- %rar% a -ibck -v838860 -ep1 -ilogc:.\rar.log -inul %%~na %%a
- )
复制代码
请高手将两个批处理合并,即:将批处理1处理后的文件重命名,并用winrar压缩。
谢谢!
作者: DAIC 时间: 2015-3-29 16:18
- @echo off
- cd /d %~dp1
- ren "%~nx1" 1.txt
- type 1.txt >1
- ren 1.txt "%~nx1"
- ren 1 "★%~nx1"
-
- for /f "tokens=2 delims==" %%a in ('ftype^|find "WinRAR"') do (
- set "rar=%%a"
- goto :next
- )
-
- :next
- "%rar%" a -ibck -v838860 -ep1 -ilogc:.\rar.log -inul "%~nx1" "★%~nx1"
复制代码
作者: brothersonline 时间: 2015-3-29 16:25
回复 2# DAIC
经测试,合并后的批处理程序仅执行了前一部分,即处理了文件并重命名,但并没有将文件压缩。请问哪里出问题了?
作者: DAIC 时间: 2015-3-29 16:33
回复 3# brothersonline
删除代码中的 @echo off
代码保存为 C:\test.bat
使用 Win + R 组合键打开运行窗口
输入 cmd 打开命令行窗口
执行命令 C:\test.bat
结果发出来看看
作者: brothersonline 时间: 2015-3-29 16:42
回复 4# DAIC
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>c:\test.bat
C:\Users\Administrator>cd /d
文件名、目录名或卷标语法不正确。
C:\Users\Administrator>ren "" 1.txt
系统找不到指定的文件。
C:\Users\Administrator>type 1.txt 1>1
系统找不到指定的文件。
C:\Users\Administrator>ren 1.txt ""
系统找不到指定的文件。
C:\Users\Administrator>ren 1 "★"
C:\Users\Administrator>for /F "tokens=2 delims==" %a in ('ftype|find "WinRAR"')
do (
set "rar=%a"
goto :next
)
C:\Users\Administrator>(
set "rar="C:\Program Files\WinRAR\WinRAR.exe" "%1""
goto :next
)
C:\Users\Administrator>""C:\Program Files\WinRAR\WinRAR.exe" "%1"" a -ibck -v838
860 -ep1 -ilogc:.\rar.log -inul "" "★"
'""C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\Administrator>
作者: brothersonline 时间: 2015-3-29 16:48
回复 4# DAIC
我的是32位的win7 ,有没有影响?
作者: DAIC 时间: 2015-3-29 17:00
- @echo off
- cd /d %~dp1
- ren "%~nx1" 1.txt
- type 1.txt >1
- ren 1.txt "%~nx1"
- ren 1 "★%~nx1"
-
- for /f "tokens=2 delims==" %%a in ('ftype WinRAR') do (
- set "rar=%%~dparar.exe"
- )
-
- "%rar%" a -ibck -v838860 -ep1 -ilogc:.\rar.log -inul "%~nx1" "★%~nx1"
复制代码
代码已更新,你再用原来的拖放的方式试试。
作者: brothersonline 时间: 2015-3-29 17:13
本帖最后由 brothersonline 于 2015-3-29 17:15 编辑
回复 7# DAIC
仍然不能生成压缩文件,将日志文件您看一下:
-------- 29 三月 2015, 压缩文件 D:\Downloads\方方格子 V2.0.4\说明.txt
17:11:49 错误: 损坏的压缩文件 说明.txt
另外,直接压缩是没问题的,或将文件拖至第二个批处理,也是可以实现压缩的。
作者: pcl_test 时间: 2015-3-29 17:55
本帖最后由 pcl_test 于 2015-3-29 21:54 编辑
回复 8# brothersonline
试试这样- @echo off
- setlocal enabledelayedexpansion
- For %%a IN (%*) DO (
- cd /d "%%~dpa"
- ren "%%~nxa" 1.txt
- type 1.txt >1
- ren 1.txt "%%~nxa"
- ren 1 "★%%~na.jpg"
-
- For /f "tokens=2 delims==" %%b IN ('ftype^|find "WinRAR"') DO (
- Set rar=%%b
- )
- Set rar=!rar:~,-5!
- !rar! a -ibck -v838860 -ep1 -ilogc:.\rar.log -inul "★%%~na" "★%%~na.jpg"
- )
复制代码
作者: brothersonline 时间: 2015-3-29 21:40
回复 9# pcl_test
代码中:
ren "%~nx1" 1.txt
type 1.txt >1
ren 1.txt "%~nx1"
ren 1 "★%~nx1"
不可以动,这是处理文件中的特殊信息用的,只是我没弄懂它的意思,如果可能最好在前面再加上一个命令,将文件名改为以jpg为扩展名的文件。
再执行上述命令,麻烦了!
作者: pcl_test 时间: 2015-3-29 21:55
回复 10# brothersonline
已在9楼更改
作者: brothersonline 时间: 2015-3-29 22:10
本帖最后由 brothersonline 于 2015-3-29 22:14 编辑
回复 11# pcl_test
是先将文件修改扩展名为“JPG”,是不是这样:
@echo off
setlocal enabledelayedexpansion
For %%a IN (%*) DO (
cd /d "%%~dpa"
ren "%%~nxa" "%%~na.jpg" ::将文件扩展名修改为“JPG”
ren "%%~na.jpg" 1.txt
type 1.txt >1
ren 1.txt "%%~nxa"
ren 1 "★%%~nxa" ::再将文件名改回来(一般为doc或docx)
For /f "tokens=2 delims==" %%b IN ('ftype^|find "WinRAR"') DO (
Set rar=%%b
)
Set rar=!rar:~,-5!
!rar! a -ibck -v838860 -ep1 -ilogc:.\rar.log -inul "★%%~na" "★%%~nxa"
)
作者: pcl_test 时间: 2015-3-29 22:21
本帖最后由 pcl_test 于 2015-3-29 22:26 编辑
回复 12# brothersonline
嗯,是的,::注释不要跟命令行在同一行
作者: pcl_test 时间: 2015-3-29 22:35
回复 12# brothersonline
问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
作者: brothersonline 时间: 2015-3-30 00:06
回复 13# pcl_test
测试了一下,将“考试申报表”拖放至此批处理,结果如下:
ECHO 处于打开状态。
E:\我的文档\0>setlocal enabledelayedexpansion
E:\我的文档\0>For %a IN (E:\我的文档\0\考试申报表.doc) DO (
cd /d "%~dpa"
ren "%~nxa" "%~na.jpg"
ren "%~na.jpg" 1.txt
type 1.txt 1>1
ren 1.txt "%~nxa"
ren 1 "★%~nxa"
For /F "tokens=2 delims==" %b IN ('ftype|find "WinRAR"') DO (Set rar=%b )
Set rar=!rar:~,-5!
!rar! a -ibck -v838860 -ep1 -ilogc:.\rar.log -inul "★%~na" "★%~nxa"
)
E:\我的文档\0>(
cd /d "E:\我的文档\0\"
ren "考试申报表.doc" "考试申报表.jpg"
ren "考试申报表.jpg" 1.txt
type 1.txt 1>1
ren 1.txt "考试申报表.doc"
ren 1 "★考试申报表.doc"
For /F "tokens=2 delims==" %b IN ('ftype|find "WinRAR"') DO (Set rar=%b )
Set rar=!rar:~,-5!
!rar! a -ibck -v838860 -ep1 -ilogc:.\rar.log -inul "★考试申报表" "★考试申报表
.doc"
)
系统资源不足,无法完成请求的服务。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
E:\我的文档\0>(Set rar="C:\Program Files\WinRAR\WinRAR.exe" "%1" )
E:\我的文档\0>(Set rar="C:\Program Files\WinRAR\WinRAR.exe" "%1" )
E:\我的文档\0>(Set rar="C:\Program Files\WinRAR\WinRAR.exe" "%1" )
E:\我的文档\0>Pause
请按任意键继续. . .
文件夹中出现“★考试申报表.doc”和“★考试申报表. rar”,但是文件大小为0
作者: pcl_test 时间: 2015-3-30 00:09
回复 15# brothersonline
把doc文件打包附件发上来,如果文件太大用网盘共享发链接
作者: brothersonline 时间: 2015-3-30 01:22
回复 16# pcl_test
文件不方便上传,在我现在能上网的机器上测试是成功的,但在其他电脑上测试不成功,不知道是什么原因?暂时先结帖吧,非常感谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |