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

[文本处理] 批处理call子过程中如何调用传递过来的参数?

本帖最后由 pcl_test 于 2016-5-13 20:08 编辑

我的批处理脚本:
@cd /d %~dp0

@call :del_result test_mr
@call :del_result test20caps

pause

:del_result
if exist %1%.cdt.bak (
    echo =====del result file of %1%=====
    del %1%.cdt
    del %1%.idx
    rename %1%.cdt.bak %1%.cdt
)

执行后:(见最后一个rename命令,为什么展开后成这样?)

D:\MyProg\IDP1.4_20160510\log>call :del_result test_mr

D:\MyProg\IDP1.4_20160510\log>if exist test_mr.cdt.bak (
echo =====del result file of test_mr=====
del test_mr.cdt
del test_mr.idx
rename test_mr1.cdt
)

D:\MyProg\IDP1.4_20160510\log>call :del_result test20caps

D:\MyProg\IDP1.4_20160510\log>if exist test20caps.cdt.bak (
echo =====del result file of test20caps=====
del test20caps.cdt
del test20caps.idx
rename test20caps1.cdt
)
=====del result file of test20caps=====
找不到 D:\MyProg\IDP1.4_20160510\log\test20caps.cdt
找不到 D:\MyProg\IDP1.4_20160510\log\test20caps.idx
命令语法不正确。

D:\MyProg\IDP1.4_20160510\log>pause
请按任意键继续. . .
1

评分人数

我期望是rename xxx.cdt.bak xxx.cdt
xxx是我传进去的参数

TOP

本帖最后由 /zhqsystem/zhq 于 2016-5-12 20:58 编辑

总觉得这么写有问题
if exist "%~1.cdt.bak"  (
rename "%~1.cdt.bak" "%~nx1.cdt"
)
你的%1到底是什么?
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

把你的 %1% 改成 %1
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

把你的 %1% 改成 %1
gawk 发表于 2016-5-13 08:07



正解!多谢!

引用传进来的参数用%1就可以了,我按照变量的方式应用就有问题。

TOP

回复 3# /zhqsystem/zhq


    %1是传进来的参数

TOP

返回列表