バッチファイルのあるフォルダー内の
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
誕生日にもらった意外なもの
みなさんがもらった誕生日プレゼントで面白いものがあったらぜひ教えてください!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
絶対パス名からファイル名を取り出して、変数に格納するバッチ
その他(プログラミング・Web制作)
-
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
-
4
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
5
コマンドプロンプトでファイル一覧を変数に入れる方法
その他(プログラミング・Web制作)
-
6
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
7
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
8
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
9
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
-
10
バッチ処理 特定の文字以降をリネーム
Ruby
-
11
バッチファイル 指定行の切り出し
その他(Microsoft Office)
-
12
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
13
バッチ終了時にDOS窓を閉じるコマンド
その他(プログラミング・Web制作)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
batファイル処理でのテキストファイルの内容を編集
その他(コンピューター・テクノロジー)
-
16
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
-
17
batファイルでdirコマンドでファイル名を取得する方法
その他(プログラミング・Web制作)
-
18
バッチファイル 複数ファイルの存在確認及び、比較方法
その他(プログラミング・Web制作)
-
19
ファイルの先頭行を全て削除したい
Windows Vista・XP
-
20
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチでテキストファイルから...
-
バッチファイルで昨日の日付を取得
-
コマンドプロンプト(バッチファ...
-
コマンドプロンプトで2ヶ月前3...
-
コマンドプロンプト標準出力と...
-
呼び出し元バッチを知るには?
-
コマンドプロンプト画面の閉じ...
-
DOSのバッチで、テキストファイ...
-
バッチファイルでDirで取得した...
-
絶対パス名からファイル名を取...
-
バッチファイル テキストファイ...
-
VBアプリケーションで終了コー...
-
バッチファイル(for文)がうま...
-
DOS終了コードの確認
-
バッチファイル IF 複数条件方法
-
コマンドプロンプトでファイル...
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
大量のフォルダからひとつのフ...
-
バッチ処理でファイルの中身を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチでテキストファイルから...
-
バッチファイルで昨日の日付を取得
-
コマンドプロンプト標準出力と...
-
コマンドプロンプトで2ヶ月前3...
-
コマンドプロンプト画面の閉じ...
-
コマンドプロンプト(バッチファ...
-
バッチファイルで常に最新の現...
-
VBアプリケーションで終了コー...
-
コマンドプロンプト(バッチ)...
-
バッチファイルでDirで取得した...
-
DOSのバッチで、変数中のファイ...
-
IPアドレスの第3オクテットだ...
-
バッチファイルで2つ以上の変...
-
子バッチ内のキー入力処理へ自...
-
バッチファイル(for文)がうま...
-
絶対パス名からファイル名を取...
-
呼び出し元バッチを知るには?
-
DOSのバッチで、テキストファイ...
-
バッチファイル テキストファイ...
-
echoとsystem関数について
おすすめ情報
ありがとうございます。
この方法でうまくいきました。
このご回答ではスプリットする方法を教えてくださったのですが
今後の応用のために
x64_AppleApplicationSupport_という文字列を置換して削除する方法も教えていただけないでしょうか?
もっと複雑なコードになるのでしょうか?
ありがとうございます。
解決しました。