如何用文件名替换空格,以建立路由?

时间:2019-05-09 22:04:18

标签: bash shell powershell unix cmd

我正在尝试将一个文件夹中所有现有文件的副本复制到另一个文件夹。但是我的名字带有空白的问题

def topNOfAttribute(people,attr,num=5):
    people.sort(key=lambda x:x.attr,reverse=True)
    toDisplay=[x for x in people if x.attr>=people[num-1].attr]
    print toDisplay

我应用此mybatch.bat

folder
-- new file.txt---->the problem 
-- file2.txt
-- file3.csv

尝试在路径中用以下代码“ _”替换空格

 set FECHA=%date%
 set FECHA=%FECHA:/=%
 set FILE=D:\BACKUPS
 for %%i in (*) do (
     copy %cd%\%%i %FILE%\${%%~ni// /_}_%DATE%%%~xi
)

但这无法运行,只是以字符串形式出现

${%%~ni// /_}

我想要这个

D:\BACKUPS\${%%~ni// /_}_090519.txt

1 个答案:

答案 0 :(得分:1)

给出PowerShell标记,这是一个解决方案。当您对正确完成复制感到满意时,请从-WhatIf cmdlet中删除Copy-Item

Get-ChildItem -File -Path 'C:/src/t/sv' |
    ForEach-Object {
        Copy-Item -Path $_.FullName `
            -Destination "C:/src/t/sv2/$($_.BaseName -replace ' ','_')_$(Get-Date -format 'ddMMyy')$($_.Extension)" -WhatIf
    }