如何用文件的名称替换空间,以构建路由



我正在尝试将文件夹中所有现有文件的副本与另一个文件夹进行副本。但是我的名字有空白

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

我使用此mybatch.bat

 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

我想要这个

D:BACKUPSnew_file_090519.txt

给定PowerShell标签,这是一个解决方案。当您满意副本可以正确完成时,请从Copy-Item CMDLET中删除-WhatIf

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
    }

最新更新