标题: [文件操作] [已解决]用批处理检查文件名数字名问题? [打印本页]
作者: czvde 时间: 2019-11-20 21:37 标题: [已解决]用批处理检查文件名数字名问题?
本帖最后由 czvde 于 2019-11-21 19:33 编辑
文件夹里面的文件:
IMG_001.pdf
IMG_003.pdf
………………
IMG_100.pdf
批处理效果
abc.txt文本内容如下:
IMG_002.pdf
问题已解决
作者: terse 时间: 2019-11-21 09:24
IMG01_002
IMG01_396
上面这两个怎么来的
作者: flashercs 时间: 2019-11-21 12:04
本帖最后由 flashercs 于 2019-11-21 18:47 编辑
- <#*,:&cls
- @echo off
- pushd "%~dp0"
- Powershell -NoProfile -ExecutionPolicy RemoteSigned -Command ". ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~0\" -ReadCount 0 | Out-String ))) "
- popd
- pause
- exit /b
- #>
- $hash = @{ }
- Split-Path -Path (Convert-Path -Path *_*) -Leaf | ForEach-Object {
- if ((Test-Path -LiteralPath $_ -PathType Leaf) -and ($_ -match '^([^_]+_)(\d+)')) {
- if (-not $hash.ContainsKey($Matches[1])) {
- $hash.Add($Matches[1], (New-Object 'System.Collections.Generic.List[int]'))
- }
- $hash.Item($Matches[1]).Add($Matches[2] -as [int])
- }
- }
- $hash.GetEnumerator() | ForEach-Object {
- $iList = $_.Value
- $iList.Sort()
- $ii = $iList.Item($iList.Count - 1) -as [int]
- for ($i = 1; $i -le $ii; $i++) {
- if (-not $iList.Contains($i)) {
- '{0}{1}' -f $_.Key, ([string]$i).PadLeft(3, [char]'0')
- }
- }
- } | Set-Content .\abc.txt
复制代码
作者: czvde 时间: 2019-11-21 17:38
本帖最后由 czvde 于 2019-11-21 19:33 编辑
回复 2# terse
问题已解决
作者: czvde 时间: 2019-11-21 18:05
本帖最后由 czvde 于 2019-11-21 19:34 编辑
回复 3# flashercs
感谢!
作者: flashercs 时间: 2019-11-21 18:48
回复 5# czvde
修改了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |