32

Windowsで数千のファイルからスペースを削除する(アンダースコアに置き換えない)方法は? DOS コマンドからこれを行うことはできますか?

現在:

file one.mp3
file two.mp3

すべてのファイルは次のようになる必要があります。

fileone.mp3
filetwo.mp3
4

9 に答える 9

89

これは、名前からすべてのスペースを削除して、ファイルの名前を効率的に一括変更できるスクリプトです。

:renameNoSpace  [/R]  [FolderPath]
@echo off
setlocal disableDelayedExpansion
if /i "%~1"=="/R" (
  set "forOption=%~1 %2"
  set "inPath="
) else (
  set "forOption="
  if "%~1" neq "" (set "inPath=%~1\") else set "inPath="
)
for %forOption% %%F in ("%inPath%* *") do (
  if /i "%~f0" neq "%%~fF" (
    set "folder=%%~dpF"
    set "file=%%~nxF"
    setlocal enableDelayedExpansion
    echo ren "!folder!!file!" "!file: =!"
    ren "!folder!!file!" "!file: =!"
    endlocal
  )
)

スクリプトの名前がrenameNoSpace.batであるとします。

renameNoSpace: (引数なし) 現在のディレクトリ内のファイルの名前を変更します

renameNoSpace /R: 現在のディレクトリをルートとするフォルダ ツリー内のファイルの名前を変更します。

renameNoSpace myFolder: 現在のディレクトリにある「myFolder」ディレクトリ内のファイルの名前を変更します。

renameNoSpace "c:\my folder\": 指定されたパス内のファイルの名前を変更します。パスにスペースが含まれているため、引用符が使用されています。

renameNoSpace /R c:\: C: ドライブ上のすべてのファイルの名前を変更します。

于 2012-07-01T01:40:16.857 に答える
24

Windows の場合:

  1. コマンド プロンプトを開きます。
  2. cd コマンドでフォルダーに移動します (例: cd "フォルダーのパス")。
  3. 次のように入力して、powershell を開きます。
  4. 次に、次のように入力します: get-childitem *.mp3 | foreach {rename-item $_ $_.name.replace(" ","")}
于 2019-07-14T04:38:31.083 に答える
13

powershell ファイルの作成 -*.ps1拡張子

次のコードを記述します。

dir |
Where-Object { $_.name.Contains(" ") } |
Rename-Item -NewName { $_.name -replace " ","" }

保存してから右クリック - > powershellで実行

于 2014-04-07T12:57:28.947 に答える
4

1 つのファイル/ディレクトリに対してこれを行う簡単なスクリプトを作成できます。

@echo off
setlocal enableextensions enabledelayedexpansion

set "ARG=%~1"
ren "%ARG%" "%ARG: =%"

...そして、必要に応じて、関心のあるすべてのファイルやディレクトリに対して実行します。たとえば、上記のスクリプトを myrenamingscript.cmd として作成すると、次のコマンドを実行して、現在のディレクトリ内のすべての非ディレクトリ ファイルに対して実行できます。

for %f in (*) do @myrenamingscript.cmd "%~f"
于 2012-06-30T00:29:14.157 に答える
4
@echo off
setlocal enableextensions enabledelayedexpansion

for %%f in (*.*) do (
set ARG=%%~nxf
rename "%%f" !ARG: =!
)
于 2013-02-23T02:14:17.067 に答える
0

プログラムでファイルの名前を変更するのはリスクが高いため (間違えると破壊的になる可能性があります)、一括名前変更用に特別に構築された予行演習モードを備えたツール ( renamer など) を使用します

このコマンドは、現在のディレクトリ内のすべてのファイルから空白を削除します。

$ renamer --find "/\s/g" --dry-run *

Dry run

✔︎ file one.mp3 → fileone.mp3
✔︎ file two.mp3 → filetwo.mp3

Rename complete: 2 of 2 files renamed.

ここには、多くのリネーマーの使用例があります

于 2021-05-04T08:28:14.353 に答える