3

フォルダーとサブフォルダーに分散された多数の画像ファイルがあります。私がやりたいのは、それらをすべて 1 つのフォルダーに移動し、以前のパスに基づいて名前を変更することです。

説明のために、ファイル src/a/b/file1.png

src/a_b_file1.png になるはずです

Linux でこれを行うスマートな方法はおそらくありますが、私は現在 Windows 7 マシンを使用しています。

どんなヒントでもいいです.GUIまたはコマンドラインツールまたはいくつかのスクリプトは関係ありません. ありがとう。

4

3 に答える 3

3

これを試してください: そして、メモ帳で renfile.bat を調べて、それが適切かどうかを確認してください。必要に応じてファイルタイプを追加します。

@echo off
echo.@echo off> renfile.bat
for /f "delims=" %%a in ('dir *.jpg *.png *.gif /b /s /a-d ') do call :next "%%a"
echo renfile.bat created
pause
goto :eof
:next
set "var=%~1"
call set "var=%%var:%cd%=%%"
set "var=%var:\=_%"
>>renfile.bat echo ren "%~1" "%var:~1%"

名前が変更されたら、すべてのファイルを移動する別のバッチ ファイル:

@echo off
md "c:\target folder\"
for /f "delims=" %%a in ('dir *.jpg *.png *.gif /b /s /a-d ') do (
move "%%a" "c:\target folder\"
)
于 2013-06-21T04:02:08.590 に答える
2

高度な renamerを使用できます。このツールは、多数の名前変更タグを提供します。

[DirName:X] 最後のディレクトリ名を挿入します。例えば。「c:\windows\notepad.exe」は結果として「windows」を返します。

X が数値の場合、その値を使用して、パスの右側から順番にフォルダー名を選択します。

[Dirname:3] for "c:\programs\games\new\mine sweeter\highscore\file.txt" は "new" を生成します
[Dirname:4] for "c:\programs\games\new\mine swifter\highscore\file.txt" は "games" を生成します
于 2013-06-21T04:14:34.813 に答える