バッチファイルのあるフォルダー内の
x64_AppleApplicationSupport_icudt*.dll
(*には49や55などの数値が入る)
(このファイルはフォルダー内に一つしか存在しない)
というファイルを検索して
得られたファイル名の
icudt*.dll
という部分だけを変数に格納したいと考えています。
ネット上で検索して
@echo off
cd /d %~dp0
SET path1="x64_AppleApplicationSupport_"
setlocal enabledelayedexpansion
for /F %%A in ('dir %path1%"icudt*.dll" /B') do (
set path3="%%A"
)
endlocal
call set path4=%path3:x64_AppleApplicationSupport_=%
echo %path4%
というコードでいけると思うのですが
x64_AppleApplicationSupport_=
という文字列が代入されてしまいます。
call set path4=%path1:x64_AppleApplicationSupport_=Apple%
echo %path4%
というコードだとうまくいくので、
どうもdirでファイル名をうまくセットできていないように思います。
これはどうすれば良いでしょうか?
No.4ベストアンサー
- 回答日時:
No.2です。
こちらの方が汎用性がありました。setlocal enabledelayedexpansion
set PATH1=x64_AppleApplicationSupport_
for /F "usebackq" %%A in (`dir %PATH1%icudt*.dll /B`) do (
set PATH3=%%A
)
echo %PATH3%
set PATH4=!PATH3:%PATH1%=!
echo %PATH4%
endlocal
No.5
- 回答日時:
他の回答者さんの回答を見ていて思ったのでですが、
質問者さんのコード通りにいくと、
path3やら4には1つのファイルの名前しか入らないことは分かってらっしゃいますか?
それともファイルが1つしかない前提なのでしょうか?
少なくとも質問本文から推測するに複数ファイルがあるようですが……。
No.3
- 回答日時:
No.2です。
> x64_AppleApplicationSupport_という文字列を置換して削除する方法も教えていただけないでしょうか?
置換の方法自体は、質問文の中でご提示の方法で良いと思います。
forコマンドに一部修正することでできます。
※dirコマンドの両側は、シングルクォートではなくて、バッククォート(Shift+@)になります。
set PATH1=x64_AppleApplicationSupport_
for /F "usebackq" %%A in (`dir %PATH1%icudt*.dll /B`) do (
set PATH3=%%A
)
echo %PATH3%
set PATH4=%PATH3:x64_AppleApplicationSupport_=%
echo %PATH4%
No.2
- 回答日時:
こんな感じでどうでしょう。
set PATH1=x64_AppleApplicationSupport_
rem dirコマンドで取得した文字のうち、
rem '_'で分割した3つめの文字列を%%iとする。
for /F "usebackq tokens=3 delims=_" %%A in (`dir %PATH1%icudt*.dll /B`) do (
set PATH3=%%A
)
echo %PATH3%
No.1
- 回答日時:
たぶんこうかなと思いますけどど
――――――――――――――ここから―――――――――――――――
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
SET jogai=x64_AppleApplicationSupport_
rem for /F %%A in ('dir "%jogai%icudt*.dll" /B') do (
for /f "usebackq delims=" %%A in (`dir /b "%jogai%icudt*.dll" /a-d`) do (
set fileName=%%A
echo !fileName!
set newFileName=!fileName:%jogai%=!
echo !newFileName!
set newPath=!newpath! "!newFileName!"
echo -----
)
rem 先頭一文字(半角スペース)削除
set newpath=%newpath:~1%
echo newPath
echo !newpath!
pause
exit
――――――――――――――ここまで―――――――――――――――
以上
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) vbaサブフォルダーをワイルドカードで取得したい 2 2022/11/15 08:04
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
絶対パス名からファイル名を取り出して、変数に格納するバッチ
その他(プログラミング・Web制作)
-
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
-
4
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
5
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
6
バッチ処理 特定の文字以降をリネーム
Ruby
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
batファイル処理でのテキストファイルの内容を編集
その他(コンピューター・テクノロジー)
-
9
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
10
バッチファイルを使ってテキストファイルの任意の行を削除したい
その他(プログラミング・Web制作)
-
11
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
12
Batch: フォルダ内の特定のファイル以外を全て削除
その他(プログラミング・Web制作)
-
13
コマンドプロンプトでファイル一覧を変数に入れる方法
その他(プログラミング・Web制作)
-
14
バッチファイルで昨日の日付を取得
その他(プログラミング・Web制作)
-
15
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチでテキストファイルから...
-
コマンドプロンプト標準出力と...
-
コマンドプロンプトで2ヶ月前3...
-
バッチファイルでDirで取得した...
-
バッチファイルで昨日の日付を取得
-
絶対パス名からファイル名を取...
-
呼び出し元バッチを知るには?
-
バッチファイル テキストファイ...
-
IPアドレスの第3オクテットだ...
-
コマンドプロンプト 半角スペー...
-
コマンドプロンプト画面の閉じ...
-
コマンドプロンプト(バッチファ...
-
for文で空白行の文字列を変数に...
-
コマンドプロンプトでファイル...
-
バッチファイルで常に最新の現...
-
コマンドプロンプト(バッチ)...
-
バッチファイルで2つ以上の変...
-
Kシェルでgotoのような処理を作...
-
echoとsystem関数について
-
コマンドプロンプトの「%1」と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチでテキストファイルから...
-
コマンドプロンプト標準出力と...
-
バッチファイルで昨日の日付を取得
-
コマンドプロンプト(バッチファ...
-
コマンドプロンプトで2ヶ月前3...
-
バッチファイルでDirで取得した...
-
コマンドプロンプト画面の閉じ...
-
絶対パス名からファイル名を取...
-
バッチファイルで常に最新の現...
-
呼び出し元バッチを知るには?
-
VBアプリケーションで終了コー...
-
バッチファイル テキストファイ...
-
IPアドレスの第3オクテットだ...
-
コマンドプロンプト(バッチ)...
-
echoとsystem関数について
-
DOSのバッチで、テキストファイ...
-
DOSのバッチで、変数中のファイ...
-
Kシェルでgotoのような処理を作...
-
バッチファイルで2つ以上の変...
-
子バッチ内のキー入力処理へ自...
おすすめ情報
ありがとうございます。
この方法でうまくいきました。
このご回答ではスプリットする方法を教えてくださったのですが
今後の応用のために
x64_AppleApplicationSupport_という文字列を置換して削除する方法も教えていただけないでしょうか?
もっと複雑なコードになるのでしょうか?
ありがとうございます。
解決しました。