
バッチファイルのあるフォルダー内の
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も見ています
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
-
4
絶対パス名からファイル名を取り出して、変数に格納するバッチ
その他(プログラミング・Web制作)
-
5
コマンドプロンプトでファイル一覧を変数に入れる方法
その他(プログラミング・Web制作)
-
6
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
7
Dosブロンプトでtabを出力したい
その他(プログラミング・Web制作)
-
8
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
9
バッチファイルで変数の中身をファイル出力したい
UNIX・Linux
-
10
コマンドプロンプトのエラーについて
その他(パソコン・周辺機器)
-
11
[DOS] コピー先に同じファイル名がある場合、名前を変えて...
その他(プログラミング・Web制作)
-
12
ディレクトリ数のみを取得するコマンド
Windows 10
-
13
フォルダ内の更新日時が一番新しいファイルを開きたい
その他(プログラミング・Web制作)
-
14
バッチファイル テキストファイル内の最後の\\以下を削除したい
その他(プログラミング・Web制作)
-
15
XCOPYで指定したフォルダとファイルをコピーしたい
システム
-
16
XCOPYでネットワーク越しにコピーすると、「無効なドライブ指定です」と表示される
その他(プログラミング・Web制作)
-
17
バッチで特定文字が含まれる先頭行を取得したい
Windows Me・NT・2000
-
18
バッチファイル 文字列にスペースがある場合
その他(プログラミング・Web制作)
-
19
echoの出力の最後のスペースを除去したい
iOS
-
20
バッチファイルでテキストファイルの1行目だけ変更
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチでテキストファイルから...
-
バッチファイルで昨日の日付を取得
-
VBアプリケーションで終了コー...
-
バッチファイルでDirで取得した...
-
バッチファイル テキストファイ...
-
Windowsのバッチで環境依存パス...
-
コマンドプロンプトで2ヶ月前3...
-
バッチファイルでの環境変数の...
-
コマンドプロンプト画面の閉じ...
-
echoとsystem関数について
-
コマンドプロンプト標準出力と...
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
エクセルのVBAについて とある...
-
大量のフォルダからひとつのフ...
-
「win11-23H2」を「win11-24H2...
-
アクセス 壊れた? 「ファイ...
-
.txtではなく.logの方が良いの...
-
#include <Windows.h>というヘ...
-
コマンドプロンプトで作成日時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチでテキストファイルから...
-
バッチファイルで昨日の日付を取得
-
コマンドプロンプト標準出力と...
-
VBアプリケーションで終了コー...
-
バッチファイルで常に最新の現...
-
バッチファイルでDirで取得した...
-
コマンドプロンプトで2ヶ月前3...
-
DOSのバッチで、変数中のファイ...
-
IPアドレスの第3オクテットだ...
-
絶対パス名からファイル名を取...
-
バッチファイル テキストファイ...
-
呼び出し元バッチを知るには?
-
子バッチ内のキー入力処理へ自...
-
コマンドプロンプト画面の閉じ...
-
C#でメジャーなバッチフレーム...
-
それでは早速、フォルダを作る...
-
echoとsystem関数について
-
Excelで住所録を地域ごとに振り...
-
Windowsのバッチで環境依存パス...
-
バッチファイル(for文)がうま...
おすすめ情報
ありがとうございます。
この方法でうまくいきました。
このご回答ではスプリットする方法を教えてくださったのですが
今後の応用のために
x64_AppleApplicationSupport_という文字列を置換して削除する方法も教えていただけないでしょうか?
もっと複雑なコードになるのでしょうか?
ありがとうございます。
解決しました。