C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: バッチファイルのfor文における文字列の取り扱い


(過去ログ 119 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■69790 / inTopicNo.1)  バッチファイルのfor文における文字列の取り扱い
  
□投稿者/ OROCHI (9回)-(2014/01/29(Wed) 18:17:45)

分類:[Windows 全般] 

OS windows 8.1

こんにちは
現在、以下の様なテキストファイルを読み込み、XX+このテキストファイルの名前+.pngというファイル名を作るバッチファイルを作ろうとしています
テキストファイル(29.txt)
JP
US
IT
DE
FR
KR
CN

バッチの中身
for /f %%a in (29.txt) do (
set codename=%%a
echo %XX_%%codename:~0%%.png%
)

ところが、このバッチを回しても、出力が以下のようになります
CN
CN
CN
CN
CN
CN
CN
一応、以下のようにすれば29の中身のみは取り出すことができます
for /f %%a in (29.txt) do (
echo %%a
)
JP
US
IT
DE
FR
KR
CN
ただし、どちらにせよ取り出した中身を操作することができません。どうも%%で取り出した中身に原因があるらしいのですが、どうすれば29の中身を取り出して、文字列操作することができるでしょうか?
バッチファイルに詳しい方、ご回答宜しくおねがいします




引用返信 編集キー/
■69791 / inTopicNo.2)  Re[1]: バッチファイルのfor文における文字列の取り扱い
□投稿者/ とっちゃん (191回)-(2014/01/29(Wed) 18:37:35)
とっちゃん さんの Web サイト
No69790 (OROCHI さん) に返信

--
echo off
rem 同じ形
for /f %%a in (29.txt) do (
echo XX_%%a.png
)

rem 凝った方法
for /f %%a in (29.txt) do call :disp_name %%a
goto end

:disp_name
set codename=%1
echo XX_%codename%.png
exit /b

:end
--
こんな感じでどうでしょう?
凝った方法については、別のバッチファイルを呼び出すという形でも実現できます。

環境変数とか細かく作りこむより、ストレートにパラメータを使うほうが現実的なのかな?と思います。


引用返信 編集キー/
■69792 / inTopicNo.3)  Re[2]: バッチファイルのfor文における文字列の取り扱い
□投稿者/ OROCHI (11回)-(2014/01/29(Wed) 19:12:12)
No69791 (とっちゃん さん) に返信
解決しました。ありがとうございました!


> ■No69790 (OROCHI さん) に返信
>
> --
> echo off
> rem 同じ形
> for /f %%a in (29.txt) do (
> echo XX_%%a.png
> )
>
> rem 凝った方法
> for /f %%a in (29.txt) do call :disp_name %%a
> goto end
>
> :disp_name
> set codename=%1
> echo XX_%codename%.png
> exit /b
>
> :end
> --
> こんな感じでどうでしょう?
> 凝った方法については、別のバッチファイルを呼び出すという形でも実現できます。
>
> 環境変数とか細かく作りこむより、ストレートにパラメータを使うほうが現実的なのかな?と思います。
>
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -