- 1 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 14:52:07.84 ID:v84I4o+L.net]
- 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net echo.2ch.net/test/read.cgi/tech/1424858999/ 【.cmd】 バッチファイルスクリプト %12 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1489207631/ それ以前の過去スレ %10 peace.2ch.net/test/read.cgi/tech/1374205515/ %9 toro.2ch.net/test/read.cgi/tech/1335015478/ %8 toro.2ch.net/test/read.cgi/tech/1315844420/ %7 hibari.2ch.net/test/read.cgi/tech/1298873550/ %6 hibari.2ch.net/test/read.cgi/tech/1277465356/ %5 pc12.2ch.net/test/read.cgi/tech/1242268171/ %4 pc12.2ch.net/test/read.cgi/tech/1229955189/ %3 pc11.2ch.net/test/read.cgi/tech/1217860043/ %2 pc12.2ch.net/test/read.cgi/tech/1197881068/ %1 pc11.2ch.net/test/read.cgi/tech/1178281991/
- 892 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 09:13:19.74 ID:n71ojSL1.net]
- wsh呼び出すならvbsでも使えばいいわけで…
- 893 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 15:49:55.53 ID:0FicG8jZ.net]
- リンク先バッチ本体をコピーしたらあかんの?
- 894 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 16:06:26.98 ID:0FicG8jZ.net]
- 動的に変化するのか?
- 895 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 22:29:49.48 ID:woSalLPH.net]
- >>851
あれ、まだ続いてましたね。 えーと、リンクファイルの情報を取得するのではなくて、リンク先からリンク元を取得できないか、という相談でした。 結論としては、.LnkのStartInをクリアすることでBatch側から%CD%にて.Lnkの親フォルダは取得可能だが、 .Lnkのファイル名を取得する手段はない、と認識しました。 もしかして、PowerShellなら取得できますか?
- 896 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 22:38:20.68 ID:woSalLPH.net]
- >>854
Batchを複製すればできますね。 でも仕様を変更したくなったときばらまいたBatchをすべてメンテするのがメンドーなので設計は1カ所にしておきたい。 ショートカットファイルだとリンク先からリンク元のファイル名を取得できない (Pathは取得可)のでこれを別のバッチで代用すれば対応できる。 (現時点、これで代用してます) でもこんどは起動がショートカットからBatchに変更されたことで最小化起動ができなくなった。 で、バッチを最小化で生起動する方法は、、無い!という結論です。 というところで諦めています。
- 897 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 23:14:22.53 ID:yH2E1+y3.net]
- おまえ要領を得ないって良く言われるだろ
何を最小化したいの?コンソール画面?バッチから起動したアプリ? アプリ起動にバッチを介するようになって困っているようだけど コンソールはすぐ消えるから大して困らんでしょ その一瞬も困るってこと? コンソールならバッチへのショートカットのプロパティに[実行時の大きさ] アプリならstart /min そのバッチを貼れない理由でもあるの?
- 898 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 23:24:30.52 ID:C/0BZ8DU.net]
- そんなへんなことするようなものは俺なら要らんと言うな
説明書に手順を書くなり、起動用のps1やvbsでも同梱しとけばいいと思う
- 899 名前:デフォルトの名無しさん [2020/06/16(火) 23:48:59.36 ID:zfRgO9so.net]
- 漏れなんか、ダブルクリックで、Ruby スクリプトを実行するために、
test.vbs に、起動部分だけを書いてる CreateObject("WScript.Shell").Run "ruby .\script.rb", 0
- 900 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 02:23:38.88 ID:1C8hVY+b.net]
- もうやめろ。くだらねえ
- 901 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 03:27:41.75 ID:pABU+G65.net]
- だから結論はでた、諦めてると言ってるだろ。
返してくれた方がいたので返答しただけ。 ただ一瞬コンソールが表示される挙動がきっちゃないからキライってだけ。 はい、本件Close。 有用な情報提供いただいた皆さんありがとう。
- 902 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 07:10:17.14 ID:jbUYdqRV.net]
- よくわからんけど start /b /min を使うのではだめなのかしら
と独り言
- 903 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 08:16:21.96 ID:tu0J1xQb.net]
- >>863
/bスイッチって何でしたっけ?
- 904 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 03:29:25.23 ID:00is865e.net]
- >>858
>その一瞬も困るってこと? 悪いことしたい時に、それでは困るよね?
- 905 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 07:09:08.15 ID:EpKOfb9E.net]
- >>865
単なる気分の問題 本件はクローズ。皆さんありがとうね
- 906 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 15:00:22.59 ID:L9lBZl+g.net]
- そんな自己満足でひとりよがりなものを配布したりして欲しくはないかな
- 907 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 20:51:24.52 ID:sqKtSFf3.net]
- ここまでの流れで誰も配布するなんて話してないのにお前
- 908 名前:は何を言ってるんだ?
866の好きにさせとけよ [] - [ここ壊れてます]
- 909 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 22:53:59.19 ID:EpKOfb9E.net]
- >>868
はい、自分用です。ご安心を。 中身もつまらない小物ツールですので。 技術的な情報が知りたかっただけです。 また教えてください。
- 910 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 00:05:08.15 ID:HgOFevSP.net]
- クローズしたそうだが
コンソール画面を見たくないのなら レイアウトの位置を右下に詰めろ。 ほとんど見えなくなるぞ
- 911 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 00:27:18.52 ID:TPV7TWbz.net]
- 殆どじゃダメなんだよ
神経質な奴に見つけられてしまう
- 912 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 00:33:46 ID:HgOFevSP.net]
- お前、質問者か?
- 913 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 03:17:24.40 ID:7A38Sw4m.net]
- テキストファイルから空行を除く方法
findstr /R . ただし空白やタブのある空行は失敗
- 914 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 05:11:07.46 ID:HgOFevSP.net]
- >>873
タブやスペースだけの行をスキップするには findstr /r /c:"[^ ]" ^と]の間にタブとスペース入力 バッチではエディタでタブ入力できるが コマンドプロンプトでタブ入力するには cmd /f:off で
- 915 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 05:34:11.61 ID:HgOFevSP.net]
- for〜do〜echoでやった方がいいかも
- 916 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 20:08:23.94 ID:dZCme2QN.net]
- テキストファイルに入ってる文字列を
一行ごとに読み込んで フォルダを作るバッチをつくったのですが 半角スペースの文字列が分割されてしまいます これって対応策ありますか?
- 917 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 20:23:13.74 ID:7ozUCHmg.net]
- >>876
for /f "tokens=*" %%i in (data.txt) do md "%%~i"
- 918 名前:デフォルトの名無しさん mailto:sage [2020/06/28(日) 21:21:38 ID:elMokmc1.net]
- >>877
できたサンクス 助かった
- 919 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 15:01:18.03 ID:SwuJ9TNP.net]
- ファイル名全角英字の大文字小文字を同じとみなしていた
A.txt に他フォルダのa.txtを上書きコピーしてもA,txtのままだった Aaは全角英字 芸が細かい、いいか悪いかは別として
- 920 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:03:57 ID:PSeL/c0z.net]
- ワイルドカードの ? の仕様がイマイチ分からない
abc と abc1 のファイルがあったとして >dir /b abc? abc abc1 >dir /b ?abc ファイルが見つかりません >dir /b a?bc ファイルが見つかりません なぜ見つからないのか 1ないし0個の文字じゃないのか
- 921 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:07:42 ID:/pl8PJcc.net]
- ワイルドカードで?は任意の1文字を示す
- 922 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:14:29.14 ID:PSeL/c0z.net]
- では abc? で abc が一致するのはなぜ
- 923 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:19:02.81 ID:/pl8PJcc.net]
- abc.でマッチするからだと思う
- 924 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:21:41.87 ID:PSeL/c0z.net]
- なるほど。ありがとう
- 925 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:28:18.05 ID:PSeL/c0z.net]
- abc?? や abc??? でも一致するようだ
- 926 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:49:40.78 ID:tIigavUn.net]
- https://www.pg-fl.jp/program/dos/doscmd/str_wildcard.htm
kayuitoko.blog129.fc2.com/blog-entry-2.html
- 927 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 19:59:31.31 ID:PSeL/c0z.net]
- abc??.?? とかも一致するね。たぶん仕様というよりバグ
- 928 名前:デフォルトの名無しさん mailto:sage [2020/06/30(火) 21:39:19 ID:clO9Gt1K.net]
- ピリオドが絡むとワイルドカードはおかしな動きするよ。
filename_yyyy.mm.dd.dat みたいなもんが dir *_????.??.??.dat で引っかからない。>>887 の言う通り、多分バグ。ピリオド以降を拡張子とみなすみたい。 filename_yyyy-mm-dd.dat として dir *_????-??-??.dat だとちゃんと引っかかるから、俺はファイル名に日付を付けるなら - を使っている。
- 929 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 07:22:43.96 ID:sbIkpZ+y.net]
- ワイルドカードは色々とおかしい
>echo > "abc" & echo > "
- 930 名前: abc"
>for %i in ("abc*") do @echo "%i" "abc" " abc" [] - [ここ壊れてます]
- 931 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 07:57:25.88 ID:9hqgfVHi.net]
- そっちはたぶん8.3形式が引っかかってるんだろう
- 932 名前:デフォルトの名無しさん [2020/07/04(土) 22:02:55.18 ID:r0U5W+Xd.net]
- PC初心者です。
初めてバッチファイルの作成にチャレンジしています。 ドライブ(丸ごと)→別のドライブのフォルダ、にバックアップを取りたくてrobocopyを使ってミラーコピーをしました。 コピーはうまくいくのですが、コピーする度にコピー先に「Recovery」という名の空フォルダが作成されてしまいます。 これはなぜでしょうか?回避方法はありますか?
- 933 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:37:12.45 ID:KIcU78VY.net]
- >>891
ggrks
- 934 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:39:29.92 ID:QUXtQ3do.net]
- たぶん、A ファイルがあって、それを上書きする時に、
安全確保のために一旦、別のフォルダ・Recovery へコピーしてから、上書きして、 正常に上書きした後に、Recovery内のA を削除している ただ、すべて正常に済んだ後に、Recoveryフォルダを削除し忘れているのだろう
- 935 名前:891 mailto:sage [2020/07/05(日) 11:17:14.37 ID:eLIuBas1.net]
- >>893
ありがとうございます。 バックアップ自体は問題なさそうなので、このままで使ってみようと思います。
- 936 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 15:06:46.22 ID:1amJ61U+.net]
- >>893
>>894 コピー元のドライブに SH 属性(システム属性+隠し属性)で「Recovery」っていう空のフォルダがあるはずなの。 ドライブを丸ごと robocopy すると強制的に SH 属性が付くから、最後に attrib -S -H してやる必要があるし、>>894 はそれをしてると思う。 そしたら「Recovery」が見えるようになった、というだけの話でしょ…これ。 コピー元のルートディレクトリに行って「dir /a」して確認してみ?
- 937 名前:891 mailto:sage [2020/07/07(火) 00:32:35.56 ID:TndHy5rX.net]
- >>895
「dir /a」して確認してみたところ、仰る通りでした!「Recovery」フォルダは不要なので削除しました。 有難うございました!
- 938 名前:デフォルトの名無しさん [2020/07/08(水) 04:28:57.30 ID:lPT19RKJ.net]
- 超初歩的な質問いいですか?
@https://i.imgur.com/hyYJbJE.png Ahttps://i.imgur.com/REf3PXQ.png Bhttps://i.imgur.com/UIqO0ye.png @のCというフォルダを中にある1.txt 2.txtごとAにコピーしてBのようにしたい時、どう入力したらいいですか? すでにBのような状態にある時もコピーして上書きしたいのですが ググれって言われるのはわかってますが、ディレクトリがどうのこうのとか、robocopyだのxcopyだの説明が糞下手くそであんなの理解できるわけないので
- 939 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 04:57:01.58 ID:xPuqy2ih.net]
- >>897
せめて、何を試してうまく行かなかった、とか試行錯誤の具体的な 過程があれば説明、答えを教えてくれるひとがいるかも
- 940 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 05:13:48.40 ID:H59ZusVp.net]
- >>897
普通にcopy使えよ
- 941 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 05:29:09.34 ID:plYM8yLW.net]
- >>897
要件はそれだけか? メッセージを表示しないだとか、\A\Cには他ファイルやサブフォルダがあり それはコピー対象/対象外だとか無いの? \Cは常に同じなら、事前にフォルダを作っておいて、あとは毎回copyだけを実行するだけ A,B,Cが実際には半角空白を含んでいたりしたらパスは""で括ること mkdir C\Users\a\Desktop\B\V\C copy /y C\Users\a\Desktop\A\C\*.txt C:\Users\a\Desktop\B\V\C xcopyを使うなら xcopy /s/e/i/y C:\Users\a\Desktop\A\C C:\Users\a\Desktop\B\V\C 又は xcopy /s/e/i/y C:\Users\a\Desktop\A C:\Users\a\Desktop\B\V
- 942 名前:デフォルトの名無しさん [2020/07/08(水) 05:44:34.05 ID:lPT19RKJ.net]
- >>900
どうもありがとうございました。 自分でも色々やって試しててうまくいかず質問したのですが、 原
- 943 名前:が保存した文字コードがUTF-8だったためでした。
ANSIに変えたらうまくいきました。 [] - [ここ壊れてます]
- 944 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 11:29:53 ID:Z8A6jaoN.net]
- xcopy よりは、robocopy を使った方が良いのでは?
xcopyは、あまり見ない
- 945 名前:デフォルトの名無しさん [2020/07/08(水) 12:24:18.71 ID:lp5P2pBO.net]
- dosで使えなくなるだろ
- 946 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 12:46:00.57 ID:Lb+zauke.net]
- たしかに、DOSは、Xcopyまでだったか。
pureDOSには、robocopyはないのだな。
- 947 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 12:56:46.06 ID:plYM8yLW.net]
- robocopyは絶望的に遅い
複雑な条件がないのならxcopyがいい
- 948 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 15:01:55.81 ID:z330e5aM.net]
- robocopyは、ミラーリングで使用したときに、
消される側にフォルダのシンボリックリンクがあると、 リンク先実体フォルダ内のファイルごと消されるというバグが有る。 /xjd /xjf /xj /sl 全部ダメ。 怖くて使えない。
- 949 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 18:21:45.08 ID:ebRsk5Wi.net]
- ま?
- 950 名前:895 mailto:sage [2020/07/08(水) 19:29:53.78 ID:fFkGRU4d.net]
- >>896
空なら大丈夫だと思うけど、場合によってはそこに WinRE (Windows 回復環境)が入ることがある。 (バグやディスク容量の関係) https://www.atmarkit.co.jp/ait/articles/2002/19/news006.html だから丸っきり不要ってわけでもないのだよ。
- 951 名前:デフォルトの名無しさん [2020/07/09(木) 01:19:26.67 ID:oG8bZA2s.net]
- itomo.cocolog-nifty.com/itomolog/2011/06/windows-4df1.html
このサイトを参考に実験フォルダにテキストファイルを量産して*.txtで検索するように書き換えて実行したんだけど (ファイル名)が見つかりません。って表示が出るだけで上手くいかないけど何か抜けてるのかな? もちろん対象フォルダには移動している
- 952 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 02:32:11.02 ID:zMPqHoYq.net]
- >>909
先頭のecho off をいったん外して、変数がどう展開されてるか確認してみたら?
- 953 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 04:53:54.78 ID:gEWbrPAM.net]
- Ruby で作った。
ただし、DryRun なので実際には実行されません! require 'fileutils' # 絶対パスのディレクトリ名の後ろに、* を付けること! # . で始まる、隠し directory, file を除く glob_pattern = "C:/Users/Owner/Documents/*.txt" num = 5 # 更新時刻の新しいものからの順で、フォルダに残しておくファイルの数 Dir.glob( glob_pattern ) .select { |full_path| File.file?( full_path ) } # ファイルのみ処理する .sort_by { |full_path| File.mtime( full_path ) } # 更新時刻の古い順で、ソートする .reverse # 更新時刻の新しい順へ、逆転 .drop( num ) # 新しいものから、num個を処理しない .each { |full_path| FileUtils::DryRun.rm( full_path ) } # ファイルを削除 表示 rm C:/Users/Owner/Documents/a.txt rm C:/Users/Owner/Documents/b.txt
- 954 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 06:30:12.62 ID:o2t2WZIU.net]
- rubyなんて論外、PowerShellですらギリアウト
ギリアウトだがPowerShellのコマンドラインで標準のエイリアスを使う場合 カレントフォルダの *.txt の最新3個以外をリストアップするには gi *.txt | sort LastWriteTime -Descending | select -Skip 3 削除までやるなら gi *.txt | sort LastWriteTime -Descending | select -Skip 3 | ri エイリアスを使わずに書くと Get-Item *.txt | Sort-Object LastAccessTime -Descending | Select-Object -Skip 3 | Remove-Item
- 955 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 06:31:35.37 ID:o2t2WZIU.net]
- ああ LastAccessTimeじゃくてLastWriteTime
- 956 名前:デフォルトの名無しさん [2020/07/09(木) 13:30:39 ID:oG8bZA2s.net]
- >>910
初歩的なミスで恥ずかしいですが量産したテキストファイル名に空白が入っている
- 957 名前:事が原因でした
そこで汎用性を持たせるために空白が入ったファイルも検出したいのですがワイルドカードで検索する方法はありますか? [] - [ここ壊れてます]
- 958 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 16:17:08 ID:t1UM8kjV.net]
- >>914
ファイル名に相当する箇所をクオート
- 959 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 06:27:24.24 ID:pJbYwVEp.net]
- https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/set_1
setコマンドのパラメータで/pとか/aとか指定できますがこのアルファベット1文字が何の略か教えてください pはPromptStringかな〜と予想してるんですがaは全く見当がつかないです
- 960 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 06:51:32 ID:73kyB1S/.net]
- Arithmetic
- 961 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 15:46:16.46 ID:nRIpdjFe.net]
- if 感染者数==0 (
goto campaign ) else ( goto campaign )
- 962 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 21:08:21.69 ID:NpGOzuTH.net]
- w
- 963 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 22:58:28.42 ID:SqApoBlS.net]
- >>916
MSの英語フォーラムとか 英語版StackOverFlowとか Redditとか で尋ねたら?英語で。 本当に知りたいなら英語圏に聞け。英語圏に。
- 964 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 23:48:35.91 ID:vc+VU4Sj.net]
- >>917 が教えてくれてるよ
- 965 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 23:53:31.66 ID:SqApoBlS.net]
- >>921
arithmetic(算術) もいいけど algebra(代数)て解釈もあんじゃね?
- 966 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 00:26:22.36 ID:3qBZIgLF.net]
- /a は 単純に answer かな
- 967 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 05:41:06.12 ID:smyagw08.net]
- >>923
まじで? いや普通にarithmeticでしょw
- 968 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 11:47:24.17 ID:lU9BoPI+.net]
- 以降あいうえお作文スレ
- 969 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 13:33:25.11 ID:d6//+ANU.net]
- Arithmeticって+-*/のことじゃないの?
- 970 名前:デフォルトの名無しさん mailto:sage [2020/07/17(金) 00:25:33.43 ID:C6Q8EyYV.net]
- +とか-はarithmetic operatorだね
- 971 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 01:59:17.03 ID:6qVTTMhl.net]
- 大体は理想通りに出来たのですが時々不要なpathをremで無効にするとstartコマンドがなぜかC:\hoge\を開いてしまうので回避できないでしょうか?
バッチ初心者なので汚いのはご容赦下さい SET TARGET_EXE1=C:\hoge\hoge.bat SET TARGET_EXE2=C:\hoge\huge.lnk rem SET TARGET_EXE3=C:\hoge\hege.exe for /l %%i in (1,1,6) do (call :F_NM "%%TARGET_EXE%%i%%") timeout /t 8 > NUL exit 0 :F_NM echo %~nx1 START "" %1 goto :EOF
- 972 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 05:56:42.11 ID:mgWYGhz7.net]
- if not "%~1"=="" START "" %1
- 973 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 08:09:21.26 ID:ddPranTH.net]
- if exist "%~1" start "" "%~1"
- 974 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 08:50:03.50 ID:ddPranTH.net]
- for /l %%i in (1,1,6) do (if defined TARGET_EXE%%i call :F_NM "%%TARGET_EXE%%i%%")
- 975 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 14:36:51.45 ID:4sfyyT7O.net]
- >>929->>931
ありがとうございます not exist definedの違いなど勉強して盛り込んでみます
- 976 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 15:31:48 ID:GUFQRDdz.net]
- >>929
すいません startコマンドのクォーテーションを二重がけにはどんな意味があるのでしょうか?
- 977 名前:デフォルトの名無しさん [2020/07/18(土) 15:40:41.02 ID:VVrReUQE.net]
- start /?
最初のは "タイトル"
- 978 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 19:10:23.40 ID:mgWYGhz7.net]
- >>933
%1の引用符なしが%~1 だから"%~1"は二重がけではない
- 979 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 20:08:37.75 ID:xxg3trOa.net]
- "" START ""
に見えたってことなら if not "%~1"=="" ( START "" %1 ) こうね
- 980 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 00:01:19.79 ID:nPf
]
- [ここ壊れてます]
- 981 名前:Uu10f.net mailto: >>933
ちなみに"start"でもダメ 一般的に内部コマンドは引用符で囲むとエラーになる 昔はstartが外部コマンドだった時もあったが [] - [ここ壊れてます]
- 982 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 00:15:51.03 ID:nmSNkapE.net]
- >>936
完全にこれでしたすみません
- 983 名前:デフォルトの名無しさん mailto:sage [2020/07/31(金) 20:28:20.67 ID:uhGaPqk6.net]
- 面白い書き方見付けた
c:\APP\DoeView>popd c:\APP>set /p<nul=%date%%time% [pushd:&@pushd doeview >nul 2>&1 && echo ok]||echo fail] 2020/07/31 (金)20:14:34.70 [pushd:ok] c:\APP\DoeView>set /p<nul=%date%%time% [pushd:&@pushd doeview >nul 2>&1 && echo ok]||echo fail] 2020/07/31 (金)20:14:38.48 [pushd:fail]
- 984 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 00:13:59.61 ID:oGghCVi0.net]
- >>939
解説お願いします
- 985 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 01:53:16.42 ID:mxUlZpQQ.net]
- 他のプログラムと標準入出力でやりとりするバッチファイルを作ろうとしています。
:INPUT set /p INP= if "%INP%"=="コマンド1" ( 処理1 echo 結果1 goto INPUT) if "%INP%"=="コマンド2" ( 処理2 echo 結果2 goto INPUT) … goto INPUT こんな感じにしたんですが、コマンドが連続で送られてくると取りこぼしてしまうようです。 何か対策は無いでしょうか?
- 986 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 06:07:29.27 ID:hnL660kY.net]
- 他のとやらが標準出力読めるなら
set /p INP=inputok 読めないならこぼさない程度に決め打ちでsleep挟んで送るようにするしか
- 987 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 10:06:48.10 ID:KdkXblI6.net]
- >>939
なるほど set /p<nul=%date%%time% [pushd: と @pushd doeview >nul 2>&1 && echo ok]||echo fail] を & でつないだという訳か。で前半を普通の順番に書き直すと set /p =%date%%time% [pushd:<nul で、set /pの変数名を空にすることで、改行をつけないechoの代わりとして使っていると。 後半はpushd doeviewを実行して、成功したらok]、失敗したらfail]を表示してるだけだな。
- 988 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 15:48:10.34 ID:mxUlZpQQ.net]
- >>942
やりとり相手のプログラムはバッチファイルでもないし自分で作ったわけでもないので調整できません… やっぱ無理ですかね…
- 989 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 16:20:21.81 ID:hnL660kY.net]
- copy nul $tmp.txt
hoge.exe >>$tmp.txt for /f "delims=" %%a in ($tmp.txt) do ( if "%%a"=="コマンド1" (処理1 &echo 結果1) if "%%a"=="コマンド2" (処理2 &echo 結果2) … ) こういう風に一旦txtに書き出しじゃダメなん?
- 990 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 17:49:00.41 ID:y/Re9bvj.net]
- >>944
実行速度を気にしないゆっくりでいいのなら、 tasklist に実行するプログラムがあれば待機する 実行するプログラムの終了コード(errorlevel)の癖がわかっているなら errorlevelで終わったかそうかわかるかも
- 991 名前:デフォルトの名無しさん mailto:sage [2020/08/01(土) 23:16:08 ID:mxUlZpQQ.net]
- どうも「相手のプログラム」がイメージしづらいようなので、プログラムそのものを貼ります。
将棋所 shogidokoro.starfree.jp/index.html USIプロトコル shogidokoro.starfree.jp/usi.html USIプロトコル対応の将棋エンジンをバッチファイルで作る、という遊びをしようとしています。 現状将棋エンジンとして登録する(usiコマンドに対してid他を返す)ところまではできますが、 対局しようとするとsetoptionとisreadyが連続で送られてきてisreadyを認識できず、readyokを返せない、等でまともに動きません。 デバッグウィンドウからコマンドを送れば一応動きますが… >>945 一旦txtに出力するのは考えましたが、具体的な書き方が思いつきません… 将棋所に登録するバッチファイルと、コマンドを処理するバッチファイルの2つに分ける、 とかも考えたんですが、結局その2つのやり取りをどう
- 992 名前:キれば良いのか… []
- [ここ壊れてます]
|

|