标题: [问题求助] 如何使用Powershell 将一个文件复制10份,文件名加后缀从1递增 [打印本页]
作者: 5i365 时间: 2021-11-29 12:14 标题: 如何使用Powershell 将一个文件复制10份,文件名加后缀从1递增
本帖最后由 5i365 于 2021-11-29 12:16 编辑
请教如何使用Powershell 将一个文件复制10份,文件名加后缀从1递增
例如,文件为a.txt,复制后为a1.txt.......a10.txt
有没有简单的办法, 不使用 [ 复制到别的地方, 再改名, 再移过来 ]的办法
作者: 5i365 时间: 2021-11-29 12:23
批处理有这个办法
echo F|(xcopy a.txt a1.bat)
作者: for_flr 时间: 2021-11-29 16:12
本帖最后由 for_flr 于 2021-11-29 17:09 编辑
- $a="a.txt"
- for ($i=1;$i -le 10;$i++){copy $a (dir $a).name.insert(1,$i)}
复制代码
#insert(1,$i),这里控制1-10序号添加进文件名长度位置
作者: for_flr 时间: 2021-11-29 16:17
- @echo off
- for /l %%a in (1 1 10) do copy a.txt a%%a.txt
复制代码
批处理
作者: 5i365 时间: 2021-11-29 17:03
回复 3# for_flr
你好, 感谢帮忙, 刚才把代码写到一个ps1文件里, 和a.txt放在一起, 右键使用powershel执行, 然后报错, 不知为什么
作者: 5i365 时间: 2021-11-29 17:04
回复 4# for_flr
这个批处理试了一下, 可以成功执行
作者: for_flr 时间: 2021-11-29 17:05
本帖最后由 for_flr 于 2021-11-29 17:09 编辑
回复 5# 5i365
笔误了,$a="a.txt"
a.txt需要加双引号
作者: 5i365 时间: 2021-11-29 17:22
本帖最后由 5i365 于 2021-11-29 17:27 编辑
回复 7# for_flr
感谢, 现在可以了, 不过, 要根据名字中字母的长度, 手动改位置参数, 如何自动改?
另外, 如果是文件名是中文字, 那个位置参数怎样自动设置?
描述简单点就是, 我只定义批处理或PS1文件前两行的文件名和份数, 然后双击后就直接复制N份文件名加了序号的文件
例如:
$a="中国人.txt"
$n=10
--------------
set a=中国人.txt
set n=10
作者: for_flr 时间: 2021-11-30 09:34
- $filename="test.mp3"
- $n=10
- $fn=[system.io.path]::getfilenamewithoutextension($filename)
- $fx=[system.io.path]::getextension($filename)
- for ($i=1;$i -le $n;$i++){copy-item $filename $fn$i$fx}
复制代码
#自定义文件名和循环次数,自动获取文件名和拓展名,每次循环复制在文件名后加递增数字。
作者: 5i365 时间: 2021-11-30 12:14
本帖最后由 5i365 于 2021-11-30 12:24 编辑
回复 9# for_flr
$filename="中国人.txt"
我试上面的变量, 没有复制
将编码改成ANSI就可以了,
请问如何将文件名的地方加个_, 例如变成
中国人_1.txt
作者: 5i365 时间: 2021-11-30 12:58
本帖最后由 5i365 于 2021-11-30 13:15 编辑
回复 9# for_flr
你好, 请问下面这个地方什么含义? 为什么不用引号括起来, 用+连接? 我试了+号$fn+$i+$fx, 结果就把+号带上了, 但是我试 $fn_$i$fx 没有把下划线带上, 结果文件名 全是序号了
$fn$i$fx
作者: for_flr 时间: 2021-11-30 15:24
回复 11# 5i365
$fn"_"$i$fx下划线加双引号就好了。
作者: 5i365 时间: 2021-11-30 17:35
回复 12# for_flr
作者: 5i365 时间: 2021-11-30 17:42
回复 12# for_flr
你好, 为什么上面的三个变量能并在一起用, 但是下面的, 两个变量并在一起, 就报错
$filename="中 国 人.txt"
$n=5
$fn=[system.io.path]::getfilenamewithoutextension($filename)
$fn #可以回显
$fx=[system.io.path]::getextension($filename)
$fx #可以回显
$fn$fx #不能回显,报错
for ($i=1;$i -le $n;$i++){cp $filename $fn$i$fx} #这里的三个变量能并在一起,不报错
cmd /c pause
作者: 5i365 时间: 2021-12-1 08:45
回复 12# for_flr
这样也可以
${fn}_$i$fx
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |