ディレクトリには100個のフォルダがあり、各フォルダ内には(filename).ini
というファイルがあります。特定のフォルダ内のすべてのすべてのファイルにfoldernameを添付する
私がする必要があるのは、(foldername)-(filename).txt
ファイルになるように.iniファイルに親フォルダ名を添付することだけです。
これを行うことができるバッチスクリプトはありますか?私はバッチファイルが初めてです。だから、どんな助けも大歓迎です!
ディレクトリには100個のフォルダがあり、各フォルダ内には(filename).ini
というファイルがあります。特定のフォルダ内のすべてのすべてのファイルにfoldernameを添付する
私がする必要があるのは、(foldername)-(filename).txt
ファイルになるように.iniファイルに親フォルダ名を添付することだけです。
これを行うことができるバッチスクリプトはありますか?私はバッチファイルが初めてです。だから、どんな助けも大歓迎です!
setlocal enabledelayedexpansion
for /R %%a in (*.ini) do (
set relativepath=%%a
set relativepath=!relativepath:%cd%\=!
set newname=!relativepath:\=-!
set newname=!newname:.ini=.txt!
ren !relativepath! !newname!
)
endlocal
+1しかし、 'CD'は' C:\ 'に追加されたスラッシュで解決されるので、ルートディレクトリから起動すると失敗します – jeb
これはどのフォルダおよびフォルダ構造でも機能します。現在のディレクトリ内のすべてのiniファイルの場合
@echo off
setlocal enabledelayedexpansion
for /R %%a in (*.ini) do (
set foldername=%%~pa
set foldername=!foldername:\=_!
echo ren "%%~fa" "(!foldername!)-%%~na.txt"
)
:~p
修飾子を使用して、ファイル名からパスを抽出し、 :=
修飾子を使用して、バックスラッシュのすべての通貨を下線に変更します。最終的に元のiniファイルの名前を変更します。テストの後
、ECHO
を削除するには、より多くの情報のためHELP FOR
とHELP SET
を参照してください。
どのオペレーティングシステムでこれが必要ですか? –
Windowsの場合、[this](http://superuser.com/questions/205083/command-line-recursive-rename-move-in-windows)のブログエントリから開始できます。Linuxの場合は[この他の1つ]を参照してください。 (http://ubuntuforums.org/showthread.php?t=679657)。 – ascanio