Board logo

标题: [文本处理] 如何在批处理中对1%进行设置 [打印本页]

作者: q625805390    时间: 2009-8-13 23:30     标题: 如何在批处理中对1%进行设置

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

@echo off
if  "%~1"=="" (echo 用法:%~nx0 XXX) else echo %~1
pause
作者: batman    时间: 2009-8-14 00:04     标题: 回复 1楼 的帖子

下面就是个例子:
  1. @echo off
  2. if "%~1" equ ""  (
  3.    echo 你没有输入任何内容
  4.   ) else (
  5.   echo 你输入的是:"%1"
  6. )
  7. pause>nul
复制代码
在cmd中输入批处理名 要输入的内容
作者: Seter    时间: 2009-8-14 10:45

我估计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
复制代码

作者: q625805390    时间: 2009-8-17 00:13

多谢,用了4楼的方法可以了。不过如果想把该文件夹的所有文件解包,我用的 set a=*.rar 之后说打开文件失败,如果是指定文件名的话如 set a=a.rar 就可以解压。这个应该怎么弄啊??
作者: Batcher    时间: 2009-8-17 11:33     标题: 回复 5楼 的帖子

可以用for命令来遍历所有的rar文件
作者: q625805390    时间: 2009-8-19 22:30

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

@echo off

set a=软件名.exe

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

pause
作者: Batcher    时间: 2009-8-19 22:55     标题: 回复 7楼 的帖子

你可以分别测试以下两种情况:
1、xxx.rar是个具有隐藏属性的文件
2、xxx xxx.rar文件名里面包含空格




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2