質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

2回答

935閲覧

特定の文字列を持つファイルのリネームについて

ya0501

総合スコア27

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2018/07/20 09:06

ファイル名に特定の文字列が含まれている場合のみ該当の文字列を削除する
バッチの記述かpowershellの記述について教えてください。

ファイルには複数パターンの特定文字列があり、そのファイルの文字列を
拡張子ごと変更する記述がうまく出来ません。

〇例

12345_abcd.xls_maliciReport.txt ⇒ 12345_abcd.xls

67890_efg_hij.ppt_warning.txt ⇒ 67890_efg_hij.ppt

上記の様に、ファイル名末尾の「.....txt」が2パターンあり、その「」以降から
拡張子までを削除したいと考えております。

下記バッチファイルで試しましたが上手くいきません。

for %%f in ( * ) do call :sub1 "%%f" :sub1 set fname=%1 set fname=%fname:_maliciReport.txt=% ren %1 %fname% set fname1=%1 set fname1=%fname1:_warning.txt =% ren %1 %fname1%

バッチファイルかpowershellでの記述で良い方法をお教えください。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

質問の際には、「うまくいかなかった」でなく、「どううまくいかなかったか」(というか、どうなったか)を書くといいです。

DOS

1for %%f in ( * ) do call :sub1 "%%f" 2goto :EOF 3:sub1 4 set fname=%1 5 set fname=%fname:_maliciReport.txt=% 6 if not %fname% == %1 ( 7 ren %1 %fname% 8 goto :EOF 9 ) 10 set fname=%1 11 set fname=%fname:_warning.txt=% 12 if not %fname% == %1 ( 13 ren %1 %fname% 14 )

投稿2018/07/20 13:36

編集2018/07/23 00:02
otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ya0501

2018/07/22 23:59

ご回答ありがとうございます。 頂いた記述を試しましたが、複数あるファイルのうち1ファイルのみが リネームされその他のファイルはファイル名がそのままでした。 何度かbatを実行しましたがその後は1ファイルもリネームが行われませんでした。 何か他に記述が必要でしょうか。 よろしくお願い致します。
otn

2018/07/23 00:03

質問文中のファイル名を回答欄にコピペするときに余計な空白が紛れ込んでいました。 その誤りに気づかずに未修正で実行したのなら、上記で再度やってみてください。
otn

2018/07/23 00:04

あと、エラーメッセージが出たかどうか判断するスキルはありますでしょうか?
guest

0

ベストアンサー

PowerShell で次のコマンドを実行するとリネームされます。

Get-ChildItem | Foreach-Object { Rename-Item $_ ($_.Name -replace '(?<=.[^_]+)_.*', '') }

投稿2018/07/20 09:28

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問