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

[文本处理] 如何在批处理中对1%进行设置

我要用一个软件对另一个文件进行解包,每次都要在dos中先输入软件的名,再加上要解包的文件的名。这样太麻烦,我想做一个批处理。我认为在dos中输入软件后的文件名,是把该文件设成了第一个变量,并作为解包软件的目标对象,不过现在不知道怎样才能在批处理中对%1进行赋值,只知道可以在dos中赋值。我说的有些乱啊,不知道大家理解了没,不过我也不知道应该怎么形容了……先谢谢大家了!!

@echo off
if  "%~1"=="" (echo 用法:%~nx0 XXX) else echo %~1
pause

TOP

回复 1楼 的帖子

下面就是个例子:
  1. @echo off
  2. if "%~1" equ ""  (
  3.    echo 你没有输入任何内容
  4.   ) else (
  5.   echo 你输入的是:"%1"
  6. )
  7. pause>nul
复制代码
在cmd中输入批处理名 要输入的内容
***共同提高***

TOP

我估计LZ的意思是,比如原来是
rar.exe k.zip
这个命令可以简化成
k.zip
对不?
试试这个
  1. set s=rar.exe
  2. ::软件名
  3. :loop
  4. set /p arg=输入文件名:
  5. %s% %arg%
  6. goto loop
复制代码

TOP

多谢,用了4楼的方法可以了。不过如果想把该文件夹的所有文件解包,我用的 set a=*.rar 之后说打开文件失败,如果是指定文件名的话如 set a=a.rar 就可以解压。这个应该怎么弄啊??

TOP

回复 5楼 的帖子

可以用for命令来遍历所有的rar文件
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

啊,多谢大家指点,我终于明白了。我是这样整的,有需要的看一看。如有不好的地方也请大家指正。

@echo off

set a=软件名.exe

for /r %%i in (*.rar) do %a% %%i

pause

TOP

回复 7楼 的帖子

你可以分别测试以下两种情况:
1、xxx.rar是个具有隐藏属性的文件
2、xxx xxx.rar文件名里面包含空格
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表