• ベストアンサー

DOS コマンド 複数の変数について

DOS コマンドで複数の変数を使ってデータを取り出したいのですが できないでしょうか。ファイル名をいったん取り出したあとに さらに、ファイル名の後ろから4文字を取り出したいと思っています。 ご教授いただけると非常に助かります。 例文は以下となります。 もう少し複雑なコマンドを作成していますが、 同様の箇所となります。最後のy に7890 がセットされた状態としたいです。 Echo on set x=1234567890 set y=%x:~-4% echo y

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

それで、できてると思うのですが、何が問題なのですか? (最後の echo %y% が echo y と書いてあるのは記述ミスですよね?)

wooddog
質問者

お礼

おっしゃる通り記述ミスでした。 ご回答ありがとうございます。

関連するQ&A

  • DOSコマンドの環境変数取得について

    DOSコマンドで/区切りの文字列の取得方法が分からなく教えて頂きたいです。 (例) DOSコマンドでdddだけ取得して表示したいです。 set test=aaa/bbb/ccc/ddd UNIXshellだと test=aaa/bbb/ccc/ddd file=`basename $1` echo $file ddd setコマンドの置換""ではなく、/区切り位置での取得方法で 何か方法がありますでしょうか? ご説明内容が分かりにくくて申し訳ございませんが、 よろしくお願い致します。

  • DOSのバッチで、変数中のファイル名を取り出すには

    DOSのバッチの初心者です。 $FILEという変数に、 C:\Documents and Settings\Administrator\My Documents\okwave.txt のようにファイル名がフルパスで入ってくるとします。このファイル名だけ(okwave.txt)を別の変数に入れたいのですが、うまくいきません。 set f=%$FILE% set g=%%~nf echo %g% 上のように書いてみたのですが、変数gは%~nfという値が入ってしまいます。どう直せばよいでしょうか。

  • DOSコマンド 「forfiles」について

    困っています。教えてください。 forfilesコマンドにて検索し、HITしたファイル名をテキストファイルに出力したいです。 以下、現状のコマンドです。 forfiles /p パス /m ファイル名 /c "echo @path > logfile.txt" この場合、指定したパス配下に複数ファイルが存在した場合は、 最後のファイル名のみテキストファイルに出力されています。 複数ファイルが存在した場合にテキストへ一覧で出力するにはどうしたらよろしいですか。

  • DOSコマンドを教えてください

    DOS(batファイル)で、コンピュータ名とIPアドレスを取得して、csvに吐き出したいのですが、 IPアドレスの取得ってどうすれば良いのでしょうか? ipconfigを使うとIP_Addressの次のsubnet_maskを取得しているように思えます。 今、私が作ってみたのは以下のコマンドです。 rem コンピュータ名取得 set my_computername=%computername% rem IPアドレス取得 for /f "skip=7 tokens=15" %a in ('ipconfig') do set my_ipaddress="%a" rem CSVファイル出力 echo %my_computername% , %my_ipaddress% >> sample_out.csv また、そのアドレスにもダブルコーテーションが付加されています。取ることはできますか? DOSコマンド自体、あまり知識がなく困っています。 方法がありましたら教えていただけませんか?

  • DOSのECHOコマンドで > を表示させたい

    DOSでバッチファイルを組んでいます そこで ECHOコマンドで > を表示させたいのですが 具体的には ECHO > と打っているんですがコマンドの構文が間違っていますと出ます おそらく実行結果をファイルにするときの > になってしまっているのだと思います ECHOで > を表示させる方法は無いでしょうか? 知っている方いればお願いします

  • DOSコマンドでカレントディレクトリのディレクトリ名を一括取得

    DOSコマンドでカレントディレクトリのディレクトリ名を一括取得 DOSコマンドにて、カレントディレクトリ名を取得するのは、 for %I in (.) do set DIRNAME1=%~nI%~xI このようなコマンドでできると思います。 しかし、DOSコマンドにて「カレントディレクトリの中のディレクトリ名」を 一括取得して、複数の変数に保存する方法がわかりません。 以上、よろしくお願いします。

  • コマンドの実行結果を変数に格納いしたい。

    有るプログラムへ特定ディレクトリのファイル数を渡す必要があり、バッチファイルを書いてますが、うまく行きません。 アドバイスを頂けましたら幸いです。 コマンドの実行欠課を変数に格納する方法を調べており、FOR文を使う事は分かったのですが、パイプを使った処理がうまく行きません。 ◎実行したいコマンド DIR /B | FIND /C /V "log” ◎バッチファイル @ECHO OFF for /f "usebackq tokens=*" %%i in (`DIR /B | FIND /C /V "log"`) do @set RESULT=%%i echo %RESULT% @ECHO ON パイプを使わず、単純なコマンドだと正常に変数に格納されますので、パイプでFINDに渡している事がだめだと思っております。 こういった場合、どう書けばよいかお教えください。

  • DOSコマンドについて

    DOSコマンドで下記の2つを実現したくて色々と 調べてみたのですがわかりませんでした。 (1)バッチファイルを実行したら、DOSプロンプトの  画面が立ち上がり、検索したい文字を入力できる  状態にする。 (2) (1)で入力された文字列が2文字以上だった場合は  エラーメッセージを表示し、再度入力させる。 (3)(1)で入力した文字列を任意のファイル内で検索し、  あれば大文字⇒小文字に変換する。 echoとpromptというコマンドを使って入力画面を 表示させることができるのかと思いましたが なかなかうまくいかない状態でした。 何か参考になるサイトがあれば教えて頂ければ幸いです。

  • UWSCのDOSコマンドについて

    UWSCのDOSコマンドについてご教授願います。 DOSコマンドにて xcopy を使用しているのですが、 ret = Doscmd("xcopy c:\test c:\****\/X/E/H/K") の****部分に変数の数値を使用したいのですがどのようにスクリプト組めばいいのでしょうか? 初歩的な質問で申し訳ございませんが、宜しくお願い致します。

  • DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか?

    DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか? 例として、以下のようにVARという変数に対して、ある文字列を設定し、その文字列の名前の変数の値を別の変数に代入したいのです。 set VAR="TMP" if /i "%VAR%"=="TMP" (SET TEST=%%VAR%%) echo %TEST% ここで求めている挙動は、SET TEST=%%VAR%%の命令によって SET TEST=%TMP% → SET TEST=C:\Windows\Temp のように展開されればいいのですが、実際はSET TEST=%VAR%となってしまいます。 なにか良い方法がないでしょうか?

専門家に質問してみよう