我想创建一个脚本来自动化流程,并成功地做到了。关键是,每次我想使用它时,都需要用新的字符串替换字符串中的文件名。我敢肯定有一种方法可以做到一次(也许使用通配符)。我是这件事的新手:p
什么都找不到。
move /y "\\enterprise\TCP\CLIENT\BASENAME.CHR" "\\enterprise\PR\CLIENT"
move /y "\\enterprise\TCP\CLIENT\BASENAME.HED" "\\enterprise\PR\CLIENT"
move /y "\\enterprise\CP\CLIENT\BASENAME.PRD" "\\enterprise\PR\CLIENT"
move /y "\\enterprise\TCP\CLIENT\BASENAME.IDX" "\\enterprise\PR\CLIENT"
move /y "\\enterprise\TCP\CLIENT\BASENAME.INF" "\\enterprise\PR\CLIENT"
move /y "\\enterprise\TCP\CLIENT\BASENAME.TAD" "\\enterprise\PR\CLIENT"
del \\enterprise\TCP\LOG\BASENAME.CHK
copy "\\enterprise\PR\CLIENT\BASENAME.HED" "\\enterprise\PR\CLIENT\BASENAME.NEW"
我想添加一个字符串来替换所有字符串中的所有BASENAME
(扩展名必须与上面的相同),例如ABCD
。每次我想运行脚本时,都可以节省将每个字符串的文件名从BASENAME
更改为ABCD
的时间。有什么想法吗?
答案 0 :(得分:1)
move /y "\enterprise\TCP\CLIENT\%~1.CHR" "\enterprise\PR\CLIENT"
,然后将abcd
作为第一个参数提供给批次。用
yourbatchname abcd
并可能通过使用
进行改进for %%a in (CHR HED PRD IDX inf tad) do move /y "\enterprise\TCP\CLIENT\%~1.%%a" "\enterprise\PR\CLIENT"
其中%%a
将被括号中的每个字符串替换,%1
被上述第一个参数替换
答案 1 :(得分:0)
我不太确定我能回答您的问题,但是您可以使用变量。
示例:
setlocal
set filename=%~1
move /y "\\enterprise\TCP\CLIENT\%filename%.CHR" "\\enterprise\PR\CLIENT"
...
copy "\\enterprise\PR\CLIENT\%filename%.HED" "\\enterprise\PR\CLIENT\%filename%.NEW"
然后您以如下方式调用批处理文件,例如myrename.cmd:
C:\> myrename.cmd BASENAME
C:\> myrename.cmd ABC
...
答案 2 :(得分:0)
如果我对您的理解正确,您是否要将所有BASENAME.*
文件移动到ABCD.*
并将它们移动到另一个文件夹?然后,您可以执行 myscript.cmd :
ren "\\enterprise\TCP\CLIENT\%~1.*" "%~2.*"
move /y \\enterprise\TCP\CLIENT\%~2.* "\\enterprise\PR\CLIENT\"
del /Q "\\enterprise\TCP\LOG\%~1.CHK"
copy \\enterprise\PR\CLIENT\%~2.HED" "\\enterprise\PR\CLIENT\%~2.NEW"
然后运行它。
myscript.cmd BASENAME NEWNAME
然后,它将提取任何名为BASENAME
的文件并将其重命名为NEWNAME
(其中BASENAME和NEWNAME可以是您输入的任何内容。
或者,您也可以使用它来提示双击:
set /p basename=Enter name to replace:
set /p newname=Enter new name:
ren "\\enterprise\TCP\CLIENT\%basename%.*" "%newname%.*"
move /y \\enterprise\TCP\CLIENT\%newname%.* "\\enterprise\PR\CLIENT\"
copy \enterprise\PR\CLIENT\%newname%.HED" \\enterprise\PR\CLIENT\%newname%.NEW"
del /Q "\\enterprise\TCP\LOG\%basename%.CHK"
现在,您可以双击该文件,它将要求您输入。