【问题标题】:DOS command to remove a space from a file nameDOS命令从文件名中删除空格
【发布时间】:2018-08-13 15:58:33
【问题描述】:

我在文件夹 \\myserver\myfolder 中有 1 个文件,其文件名有一个空格,如
First Name_20180810.csv。 我需要一个每天运行的命令,将
First Name_{date}.csv 重命名为FirstName_{date}.csv

文件名中的日期每天都会更改。例如,今天文件名为
First Name_20180812.csv,明天文件名为First Name_20180813.csv

如何在文件夹\\myserver\myfolder 中将First Name_{date}.csv 重命名为FirstName_{date}.csv

谢谢。

【问题讨论】:

  • 这个问题的中心点是从文件名中删除一个空格放置在任何地方。这是正确的吗?如果是这样,那么文件名的结构总是相同(并且不会每天更改)...
  • dos != cmd :-)
  • DOS 只做了 8.3 文件名。
  • 你使用的是什么操作系统?

标签: windows batch-file cmd file-rename removing-whitespace


【解决方案1】:

ren 命令可以使用通配符,但它的行为出乎意料:

来自First Name_20180812.csv

ren "first Name_*" FirstName_*

会生成FirstName__20180812.csv。 (通配符替换字符串的长度相同)

这让您有两个选择:要么不删除该空间,而是替换它:

ren "first Name_*" "First-Name_*"

或者使用简短的脚本来删除空格(实际上是:删除所有个空格):

@echo off
REM for /l %%i in (4 1 9) do break>"First Name_2018081%%i.csv"
REM (uncomment above line to generate some testfiles)

setlocal enabledelayedexpansion
for %%A in ("first name_*") do (
  set "file=%%A"
  ren "%%A" "!file: =!"
)

【讨论】:

  • @Aacini:是的,我需要从文件名中删除放置在任何位置的一个空格,并且文件名的结构始终相同。但是,文件名中有日期,所以今天的文件名是 First Name_081318.csv,明天是 First Name_081418.csv。
  • @Ross Ridge:这是 Windows
  • 谢谢!此命令有效: ren "\\myserver\myfolder\First Name_{askteriks}" First-Name_{asteriks} @Stephan
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 2013-05-02
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多