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/
577 名前:デフォルトの名無しさん mailto:sage [2019/11/09(土) 21:14:31.85 ID:9HGwW/1Y.net] @echo off echo %1 call :LABEL %1 exit /b :LABEL echo %* ↓ > test.bat a a a これが普通 > test.bat ^^ call :LABEL exit /b ECHO は <OFF> です。 頭痛いけどなんとなく理解できる > test.bat "^" "^" "^^" なんで^増えてんだよwww
578 名前:デフォルトの名無しさん mailto:sage [2019/11/09(土) 21:24:41.89 ID:9HGwW/1Y.net] @echo off setlocal enabledelayedexpansion echo %1 set A=%1 call :LABEL "%A%" call :LABEL !A! call :LABEL "!A!" exit /b :LABEL echo %1 > test.bat "^" "^" """" "^^" """" もう意味がわかんないw これ人間が制御できるものなんか?
579 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 09:44:25.06 ID:fP398yW4.net] setlocal enabledelayedexpansion は >>540 対策で使えるけど、 それ以外はもっと制御が難しいかも・・・ 基本は通常のsetlocalで比較のときだけ 部分的に使ったほうが良さそう 今回は頑張ったけど、もうやらない。
580 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 15:37:42.63 ID:noq81T2Q.net] スレ伸びてると思ったらほぼ ID:9HGwW/1Y だったでござる
581 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 20:23:39.65 ID:u8+xJCBj.net] for in って for %%i in (*) みたいにワイルドカードが含まれていればファイルを検索する機能で for %%i in (a b c) みたいにワイルドカードが含まれてない場合は ファイルがあるなしに関係なく、a、b、cを繰り返す機能ってことであってますか?
582 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 15:51:47.87 ID:MT98n7t2.net] 多重フォルダの中身を 一番上のフォルダにまとめるスクリプトってどうやるの? できればフォルダをドラッグ&ドロップしたいんだけど
583 名前:デフォルトの名無しさん mailto:sage [2019/11/14(木) 21:52:50.32 ID:ah6E9oLX.net] >>561 for /r %1 %%i in (*) do move "%%i" \
584 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 20:56:52.03 ID:/+k2TWLn.net] なんかこんなバッチファイルがあったけどうまく動かない for /f "usebackq tokens=1" %%A in (`tasklist /fi "imagename eq SKRWATCH*" /fo "table" /nh`) do if "SKRWATCH.EXE"=="%%A" (echo %%A & exit) else (START /D C:\Users\user1\Downloads\skrw021 SKRWATCH)
585 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 21:18:40.00 ID:45qFz0UJ.net] >>563 うまく動かないでは状況が不明(エラーxxxが表示とか具体的に) ・tasklistは動くのか?(tasklist /?) ・そのままコピペしてるのなら動かなくて当然 (doの前に全角空白があるし、doの後も改行されてる 起動するパスがexeと空白で区切られてるがタイプミスか) ・対象はそのEXEで間違いないのか、パスに間違いはないか
586 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 21:26:40.79 ID:45qFz0UJ.net] >起動するパスがexeと空白で区切られてるがタイプミスか これはフォルダ指定だから記述に問題はなかったね
587 名前:デフォルトの名無しさん mailto:sage [2019/11/19(火) 00:58:21.49 ID:f1OS2g5Q.net] >問題はなかったね 問題あるから動かねーんだろwwバカじゃね? いきなりバッチじゃなくてプロンプトでコマンドひとつひとつ動作するか確認してみろやボケ
588 名前:デフォルトの名無しさん mailto:sage [2019/11/19(火) 03:01:51 ID:DFw2Dz+B.net] pause & exit コンソール入力で起動なら exit/b
589 名前:デフォルトの名無しさん mailto:sage [2019/11/20(水) 12:24:50.17 ID:2S7bcPNj.net] テキストファイルの[version]ってタグの上に任意の文字列を追記したいんですけどなにかいい方法ありませんかね? ↓なイメージです key = value [version]
590 名前:デフォルトの名無しさん mailto:sage [2019/11/20(水) 13:04:27.56 ID:Tu0gcZfO.net] batじゃしらんけどperlかawk使えるスクリプトのほうが簡単だと思う
591 名前:デフォルトの名無しさん mailto:sage [2019/11/20(水) 13:53:46.39 ID:xBPN5HFi.net] エディタでの置換じゃ無理な処理数なん? batで文字列操作は事故の元 JSかP
592 名前:Sでも使えば? [] [ここ壊れてます]
593 名前:デフォルトの名無しさん mailto:sage [2019/11/20(水) 17:43:27.76 ID:jZ8vbKIX.net] >>569 >>570 やりたいことはローカルセキュリティーポリシーテンプレートを書き換えたいんですよ seceditってコマンド使うんですけどその書き換えの部分を自動化したいんです 因みにPSでは使えないです
594 名前:デフォルトの名無しさん mailto:sage [2019/11/20(水) 19:20:58.96 ID:Tu0gcZfO.net] これでいけないかな https://qiita.com/kurukurupapa@github/items/f4439fd5c33f6ebfec62
595 名前:デフォルトの名無しさん mailto:sage [2019/11/20(水) 19:53:19.75 ID:p2TBD6cq.net] 一行ずつぐるぐる回しながら表示して [version]だったら、その表示の前に追加すればいいだけじゃん
596 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 09:08:09.78 ID:YDFq+t9K.net] いいやPS使ってもらう
597 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 10:25:48.48 ID:Wg+WlOX1.net] ファイルを一行ずつ読み込んで出力する処理に ちょこっと手を加えるだけだから簡単だな
598 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 11:16:31.45 ID:LvODftpp.net] 簡単だったら早く教えろよな キレちゃうぞこのやろう
599 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 11:47:37.77 ID:xinrmZtD.net] PSで簡単にできたからもういいわ
600 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 12:46:53.45 ID:7xPdmDWo.net] >>572 行頭が数字なのにeolの指示は無意味 delimsを数字にしないとまずいし 他人のバッチを鵜呑みにして理解していないバッチ
601 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 15:03:03.19 ID:8WRatKwZ.net] EUCテキストだから、ファイル名をそのままfindstrに突っ込むのは無理だな
602 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 16:04:24.91 ID:7xPdmDWo.net] >>579 これでどうかな? @echo off chcp 20932 set s="%~1" set "a=key = value" set "b=[version]" call :x > "%~2" goto :eof :x for /f "delims=" %%i in ('findstr /n "^" %s%') do ( set c=%%i setlocal enabledelayedexpansion set d=!c:*:=! if /i !d!==!b! echo.!a! echo.!d! endlocal)
603 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 16:15:57.27 ID:7xPdmDWo.net] >>580 を実行前は chcp 932
604 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 20:46:01.60 ID:8WRatKwZ.net] EUCじゃなくてUnicode(UTF16)だった
605 名前:デフォルトの名無しさん [2019/11/21(木) 22:34:33.13 ID:2C4HvUZs.net] コード変換ソフトがないと、無理かな。
606 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 22:42:46.40 ID:8WRatKwZ.net] いやfindstrにファイル名渡さないようにすればそれでいい 'type %s%^|findstr /n ^^' cmd /u /c hoge.bat in.txt out.txt
607 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 22:47:11.20 ID:8WRatKwZ.net] ^^じゃダメだった ^^^^か"^"だね
608 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 23:14:31.55 ID:t93OqxgW.net] >>568 Ruby で作った text = <<"EOT" [version] a [version] EOT re = /^\[version\]$/ text.gsub!( re ) { |matched| "key = value\n#{ matched }" } # 置換 puts text 出力 key = value [version] a key = value [version]
609 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 23:21:01.84 ID:8WRatKwZ.net] ただBOMが付かないね BOMが無いと使えないかどうかは怖いので試してない
610 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 00:14:32.18 ID:UfmR8W/F.net] >>587 @echo off & if "%~1"==":x" goto x set "a=key = value" & set "b=[version]" & set s="%~1" chcp 65000 > nul cmd/u/c "set/p a=+/v8-<nul"> "%~2" chcp 932 > nul cmd/u/c "%~0" :x >> "%~2" & goto :eof :x for /f "delims=" %%i in ('type %s% ^| findstr/n/r .*') do (set c=%%i setlocal enabledelayedexpansion set d=!c:*:=!& if /i !d!==!b! echo.!a! echo.!d! endlocal)
611 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 00:20:53.00 ID:UfmR8W/F.net] >>588 あらかじめbom付き空テキスト用意しておけば もっと簡単なバッチになるけどね
612 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 02:00:26 ID:iZoP+Nd2.net] FINDSTR: // は無視されました。 /n /rとするか、/nだけにするか
613 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 02:02:44 ID:iZoP+Nd2.net] /nrで良いか
614 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 02:47:17 ID:UfmR8W/F.net] そうだ
615 名前:な。直ぐ消えるので気付かなかった 動作はするようだが スペース入れた方が無難だね [] [ここ壊れてます]
616 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 08:47:38.56 ID:wKGQ5j7v.net] rubyきちがいきてるね
617 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 09:49:43.81 ID:VuiommTl.net] 無視無視
618 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 12:09:43.22 ID:f2CG40En.net] point of no return
619 名前:デフォルトの名無しさん mailto:sage [2019/11/23(土) 16:13:10.37 ID:x4sN5Hm0.net] 質問した人は登場しないね ひょっとして>>577 が最後?
620 名前:デフォルトの名無しさん mailto:sage [2019/11/23(土) 16:50:58.80 ID:xep2e/TT.net] awkが手軽で楽そうだがユニコードできたっけ?
621 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 13:59:48.96 ID:6F6igyhI.net] WindowsならPSで良いだろ 文字コードもドトネトで扱える範囲で指定できるし
622 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 10:19:19 ID:NW9y+uW0.net] 用途:エクセルにある複数の画像URLを、指定したフォルダにDLさせたい コマンドでやりたい理由: ダウンロードソフトは一つのフォルダに全部DLするか、 一つのURLを開いてから一つづつDL先を指定するか、 URLをフォルダ構造に分解して保存するからDL後探すのが面倒で嫌 DownloadThemALLとか、DL雨とか、Tab Saveとか、Image Downloader… 全部ダメ; bitsadmin /transfer [name] [URL][DL path] bitsadmin /transfer [name] [URL][DL path] bitsadmin /transfer [name] [URL][DL path] …こんな風に並べて書いたところ、リストの最後らへんの二つぐらいを除いて PRIORITY:NORMAL FILES:1/1 BYTES:0/0 (0%) Transfer complete. でDL開始する前に次の行にいってしまうようです。しかも0バイトの指定したファイルを作ってしまいますw MS見ると複数やるなら1行に続けろとあるので bitsadmin /transfer [name] [URL] [DL path] [name2] [URL2][DL path2] としたが状況変わらず。 どうしたらいいでしょうか。timeoutでは変わりませんでした。
623 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 10:20:48 ID:NW9y+uW0.net] >並べて書いた batファイルにしてからダブクリのため
624 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 12:23:55 ID:ImxGWCjG.net] httpのみでhttps未対応だしリファラやUA見られてても落ちないと思う ダウンローダーはその辺勝手にやってくれてるんだよ 取り敢えずこれ真似してforでlist読んでやってみれば? ttps://automationlabo.com/wat/?p=570
625 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 12:32:29.83 ID:NW9y+uW0.net] >>601 ありがとう、そこのサイトみてやってるんだ ちなみに今はHTTPS対応してるようで ttps://maku77.github.io/windows/cmd/download.html ttps://qiita.com/uratatsu/items/d77152ca121d0b779464 一件づつコピペだったらできるんだ ダウンローダーについては気軽にスレで聞いてるけど、 画像ごとにフォルダを指定して一気に保存ができるものはないみたい 昔懐かしいirvineができる的な噂見てやってみたけど、フォルダ指定ができないorz
626 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 13:46:11 ID:ISv3uuWx.net] しらんけど 前の行の処理が完了する前に次の物が始まるのがまずいなら Call でいんじゃないの?
627 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:15:56.61 ID:ImxGWCjG.net] call または start "" /wait コマンド
628 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:16:12.39 ID:JyI6kWkc.net] 特定に箇所にダウンロードして、ダウンロードが終わったら移動するんじゃダメなの? なんでダウンロードするアプリにフォルダ指定の機能まで期待するんだろう 頭硬いのかな
629 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:22:21.16 ID:Rh/VLF1h.net] bitsadmin の代わりに cURL を試してみては
630 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:40:23.78 ID:jwtMC5+Q
] [ここ壊れてます]
631 名前:.net mailto: >>599 ジョブにaddfile/addfilesetオプションでurl追加すればできるみたいだけど [] [ここ壊れてます]
632 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:41:21.48 ID:ISv3uuWx.net] たしかにそれぞれのファイルのフォルダ指定をすること自体がめんどくさそう ダウンロードフォルダにその人が望む各保存先フォルダのショートカットおいてまとめて突っ込む方が楽そう
633 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:51:14 ID:NW9y+uW0.net] pushd %~dp0 for /f "tokens=1-3" %%A in (list.txt) do ( bitsadmin /TRANSFER FILEDOWNLOAD %%B %~dp0\%%A\%%C ) echo listの内容 [dir] [url] [ファイル名] ダメでした…%%Aで留めれば行けるけど、他のフォルダにいれたいやつを上書きしちゃう curl…Linuxコマンドだと思ってスルーしていたけど調べてみます。thx >>605 100も200もあるURLごとのフォルダからぽちぽち移動できるもんならやればいいよ DownloadThemALLとか、古いFirefoxでしか動かんけどScrapbookとか、あなたが 言うような奴ならごまんとある。 私はそれはやってられんから他の方法探してます。 hogehoge.jp/moemoechan/hogenull/img/image/hoge-hoge-hoge-hoget.jpg というURLをそのままフォルダにされても、今回の場合は探し出すのが大変なんだよ、 ファイルに行くまでに何回クリックいる?×100だよやりたいならどうぞ私は嫌ですw (単なるスクラップならせいぜい1サイトくらいだからむしろそれでいい) つか、あなたのそのやり方やるぐらいなら、URLのリストをいっこづつコピペで 開いてブラウザから保存したいフォルダにD&Dしたほうが何十倍も速いぞたぶん。 だってDLしたあとで探す手間いらないですよね?
634 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:55:31 ID:JyI6kWkc.net] >>609 >だってDLしたあとで探す手間いらないですよね? なにを探すの? 空のディレクトリに一個だけダウンロードしたらmoveするだけじゃん しかもダウンロードするファイル名分かってるんだろ? まとめてダウンロードしてからでも人間が探す必要なんかないじゃん ダウンロードディレクトリにあるんだから 脳みそ足りて無くない?
635 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 14:59:19 ID:NW9y+uW0.net] >>607 !! 調べてみます! まあそりゃねぇ 管理ナンバー URLっていう100個のリストにある画像集める必要があって 素直にそのURLをブラウザで開いてD&Dもしてましたよ…けど開いてる時間すら 面倒になってきまして… ダウンローダーいろいろ探したけど、ブラウザのダウンロードフォルダ固定とか ダウンロードする画像ごとにフォルダ指定しろダイアログとか、そーじゃねーよとw もうそのいちいちダイアログがうぜえwでも振り分けずぜんぶいっしょくたも困る。 で、GoogleスプレッドでIMPORTXMLで画像リスト出していまここって感じ。 599の状態でビャーってなればよかったのだが。(もっといい方法あったらそっちがいいけど!)
636 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:05:17 ID:NW9y+uW0.net] >>610 これが見えないですか。そうですか。 >hogehoge.jp/moemoechan/hogenull/img/image/hoge-hoge-hoge-hoget.jpg >というURLをそのままフォルダにされても、今回の場合は探し出すのが大変なんだよ、 元々は 123 hogehoge.jp/moemoechan/hogenull/tio/hoge-hoge-hoge-hoget.html 124 hogehoge.jp/moemoechan/hogenull/star/hoge-hoge-hoge-hoget.html 125 hogehoge.jp/moemoechan/hogenull/maru/s/hoge-hoge-hoge-hoget.html 126 hogehoge.jp/moemoechan/hogenull/otto/s/hoge-hoge-hoge-hoget.html というエクセルのファイルにある各URLのにある画像をそれぞれ分けたい、ということ。 ちなみにこれ4つだからぽちぽちやってもいいんだけどさ…100行あるとしたらどう?w
637 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:25:21 ID:XdTMGSyO.net] batで外部プログラムの実行完了まで待つ呼び出し方法は start /wait って上で誰かが言ってるだろ
638 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:33:34 ID:ISv3uuWx.net] ツリー上に保存しなけりゃいいし ダウンロードフォルダのルートで
639 名前:*でサブフォルダ含めて検索してもすぐまとめて表示されるしなあ [] [ここ壊れてます]
640 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:49:02.22 ID:NW9y+uW0.net] ツリーに保存しないとダメだからそうしてるんだけど。 この管理番号の画像これですよーと明示できなければならないからリストがあるわけで。 必ず4つ、必ず5つならDL時即時リネーム連番にしてもいいけど…3しかなかったり6あったりする それを検索するにしても画像リストと照合しながら?工程増えすぎ。元の手順より面倒になってもw waitはダメでした。 trancefar 〜 wait trancefar ~ は使い方間違ってますか? trancefar 〜複数URL wait もだめでした…
641 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:54:58.38 ID:SASMXjiT.net] start "" /wait bitsadmin でしょ
642 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 15:56:32 ID:ISv3uuWx.net] いちいち一個ずつ保存先指定するより楽だよ 検索っていっても保存先フォルダことにダウンロードすれば*でやりゃいい
643 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:10:59 ID:XdTMGSyO.net] とにかくダウンロードが正常に終わるようにならないと先に進めないだろ ダウンロード時にフォルダが決まるならそれで問題解決だし 外部ダウンローダを使うのなら、落としたファイルとurlとの対応が取れるのかが問題 それが可能(例えばファイル名が行番号になってるとか)なら 落とした後にファイルを対応するフォルダに移動すればいい もちろんbat等の自動化で
644 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:20:26 ID:ImxGWCjG.net] start "" /wait bitsadmin /TRANSFER FILEDOWNLOAD %%B %~dp0\%%A\%%C urlに&とか%は無いの?
645 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:26:58.84 ID:NW9y+uW0.net] >>617 それ、ブラウザでURL開いて、保存先フォルダ開いてD&Dのほうが早いよ? 今時のブラウザ、コピペと同時に開くんだから。 >>618 それな; >>616 ! そういう使い方になるのか!ありがとうございます! でも空ファイルだったw Dirとmdで生きてるのでもう脳みそ煮えてますわ…
646 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:34:10.52 ID:NW9y+uW0.net] >>619 ある。%20とか?とか。 ttps://hoge.hoge.com/foto/img/MARC%20MAX/MARC%20MAX-20191003123-A-12345.jpg?123456 ttps://hoge.hoge.com/foto/img/MARC%20MAX/MARC%20MAX-20191003123-A-12346jpg?1234 こんな感じ。 bitsadmin~を一つだけ書いた場合はちゃんと動作するから大丈夫な・・・ えっ??まさか%%
647 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:50:52 ID:ISv3uuWx.net] >>620 一個ずつドラッグドロップする気?
648 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:51:59 ID:ISv3uuWx.net] >>618 ダウンローダーなら正常に終わるでしょ
649 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:57:32 ID:XdTMGSyO.net] >>623 一般的なダウンローダなら、urlの末尾がファイル名になるが 名前の重複も多く起き、その場合、ダウンローダは自動的にリネームする aaa.jpg, aaa(1).jpgのように しかも(1)が付くのは早くダウンロードが終わったものでリストの上から順というわけでもない これとリストにあるurlとの対応をとるのは大変だと思わん?
650 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:03:32 ID:JyI6kWkc.net] >>624 結局一つずつダウンロードする必要があるだろ? やっぱり何を探せなないのが全くわからんなぁ
651 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:04:08 ID:ISv3uuWx.net] >>624 重複はツリー上で保存すりゃ起きない
652 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:07:32 ID:NW9y+uW0.net] >>622 その方が早いと言ってます。どっちが早いか試してみたら? https://www.yahoo.co.jp/ ロゴとその左右のアイコン https://www.rakuten.co.jp/ ロゴから購入履歴までのアイコン https://www.nikkei.com/ ロゴと、その下の写真3つ DL先のフォルダ開く、URLひらく、D&D 3工程 URLをまとめてダウンローダーに入れる、ダウンロードフォルダにまとまって入ってるから開く、移動先のフォルダを開く、該当のファイルを検索する D&D 5工程 フォルダごとにURLをダウンローダーにいれる、ダウンロードフォルダにまとまって入ってるから開く、移動先のフォルダを開く、D&D 4工程
653 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:10:41 ID:ImxGWCjG.net] >>621 詰み &なら "%%~B" とすれば行けたかもだけど バッチで%〜%のエスケープは出来なくないもののかなり面倒くさい powershellとか行
654 名前:チた方がいい どうせ自動化するのなら>>612 の元listから抽出してDLする方法をPSスレとかで相談してみれば? [] [ここ壊れてます]
655 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:15:21 ID:NW9y+uW0.net] で、私はその3工程ですらめんどくっせーってなって、3工程とも省けんかなと考えた #今後も同じ作業あるから、今なんとかできてると今後が楽。 ダウンローダーのダウンロード先の問題って、こうなるんだよね tp://imepic.jp/20191126/620210 ふ、ふかい。(これはFirefoxアドオンのスクラップブック。DownloadAllThemもこういう感じ) お気に入りのサイト見るだけならアドオンからわかるんだけど、画像を取り出すとなると エクスプローラーに行く必要がある
656 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:15:53 ID:ISv3uuWx.net] >>627 エクセルに入れてるってんだから まとめてURL処理してるんでしょ D&Dをファイル数分しなくちゃならんのを言ってるんだが まとめてURL処理してるならD&Dは1回でいい
657 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:18:49.77 ID:NW9y+uW0.net] >>628 うへwわろすwそういうことか! Powershellはこっち以上に全くわからんな… 画像リストはGoogleスプレッドにぶんなげて作れてはいる ありがとう
658 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:19:23.77 ID:ImxGWCjG.net] 0バイトになるのは書き込み権限とか 管理者で実行しても変わらない?
659 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:23:52.25 ID:NW9y+uW0.net] >>632 transfarされる前に次にいっちゃって、でもファイル作れって言ってるから空のファイルつくりましたって感じに見える transfar実行画面のBYTE:0/0のところが、いっこづつやったときはにゅーーーって動いてファイル捕れるんですが ここが0/0のままで次を始めてしまう Wait入れようが、Pauseいれようが、そこは同じですね
660 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:42:23 ID:NW9y+uW0.net] >>631 エスケープさせてできました!! コマンド自体もスプレッドシートに関数くんでやってるので、どこかの時点で% を置き換えてやることにします。 ヒントありがとうございました。 みなさまもたくさんヒントありがとうございました。
661 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 17:50:12 ID:XdTMGSyO.net] >>634 ""で括ってやれば? ダメならちょっと上のsetlocal enabledelayedexpansionを参考に pushd %~dp0 for /f "tokens=1-3" %%A in (li.txt) do ( if not exist "%~dp0\%%A\." mkdir "%~dp0\%%A" start "" /wait bitsadmin /TRANSFER FILEDOWNLOAD "%%B" "%~dp0\%%A\%%C" )
662 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 09:30:10 ID:/m01ABgd.net] >>634 おい逃げるなよ
663 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 23:47:18 ID:wNkvi2te.net] >>636 こわいよw もはや逃げることはできぬぞ、か。
664 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 14:56:56 ID:0+3TB6cR.net] トレンドに#業務ハックというのが上がってた。フーン ここにいるわるいオジサン達は徹底的に省力化して、あとは仕事するフリして過ごすようなことは まさかしていませんよね?
665 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 05:01:38.65 ID:CfjKoCjD.net] 無理そうな気はしつつも質問 苗字<tab>名前<tab>年齢<tab>住所 田中<tab>太郎<tab>27<tab>大阪 山田<tab>花子<tab><tab>東京 佐藤<tab><tab>35<tab> こんな表のテキストファイルを<tab>を区切り文字として列指定して読み込みたいんだけど tokens=2,4 にしても連続した<tab>は一括りに扱われて山田と佐藤は対象の列がずれちゃうよね これはもうvbsやVBAじゃないと無理ぽかな
666 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 07:15:07 ID:BTxKZMwl.net] >>639 delimsに指定してもダメなの?
667 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 07:44:27 ID:CfjKoCjD.net] 半角スペースは文字列として扱いたいから<tab>だけを指定してるけどダメよー
668 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 09:16:41.59 ID:3V5uc2tI
] [ここ壊れてます]
669 名前:.net mailto: >>639 tabの間にスペースを入れてみた。 これは前処理なので、あとはお好きにどうぞ @echo off set "t=<tab>" call :x > test2.txt pause & goto :eof :x for /f "delims=" %%i in (test1.txt) do ( set a=%%i setlocal enabledelayedexpansion set a=!a:%t%%t%=%t% %t%! set a=!a:%t%%t%=%t% %t%! echo.!a! endlocal) <tab>にはタブを入力 [] [ここ壊れてます]
670 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 01:05:38 ID:hz4JPg2Q.net] おお、値の無い列には半角スペースを入れてしまうわけか こりゃ気付かんかったサンクス
671 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 01:06:30.14 ID:7bx1tfw6.net] バッチでフォルダの表示方法とかかえられないよ? 詳細にして 表示の種類に長さとか大きさとか いれたいんだけど それをワンクリックでやりたい https://i-bitzedge.com/wp-content/uploads/2016/03/Search-Contextual-tab-Windows-10.jpg 名前とか日付のとこに 長さとか大きさを追加するってことね
672 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 01:06:50.17 ID:7bx1tfw6.net] かえられないよの?
673 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 04:06:09.26 ID:t9dRWycX.net] >>645 レジストリ値弄れば出来たと思う。 昔職場の環境統一するのに使ってた。 詳細はRegshotとかで差分とって。 バッチからはRegコマンドで設定するかRegEdit /s で読み込むかのどちらか。
674 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 04:07:58.73 ID:t9dRWycX.net] >>645 設定後にShellの再起動も必要だったかも。
675 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 06:18:44.99 ID:SOm460Ps.net] >>646-647 レジストリか なるほど ちょっと色々調べてみます
676 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 16:55:31 ID:l8jrOhSU.net] こういうの実行するとサブフォルダのファイルでは空行ではなくピリオドが出力されるんですが何故ですか? まあ実用上の問題は無いんですが @echo off for /r %%i in (*.*) do ( echo "%%~nxi" echo. ) pause
677 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 17:08:49.51 ID:TZP99wd2.net] ピリオドとかコロンじゃなくて、カンマとかセミコロン使えばいいよ
678 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 17:16:19.46 ID:TZP99wd2.net] イコールもお仲間で、この3つが特別区切り記号らしいよ
679 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 17:18:33.06 ID:l8jrOhSU.net] >>650 はい、カンマを使うと問題が起きないことは確認していたのですがピリオドだと何故こうなるのか気になりました
680 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 17:23:09.51 ID:TZP99wd2.net] 特別区切り記号だから
681 名前:デフォルトの名無しさん mailto:sage [2019/12/22(日) 19:05:52.87 ID:DvnYZkai.net] /rが悪さをしてるんじゃね サブフォルダの中でピリオドを2個にして
682 名前:デフォルトの名無しさん mailto:sage [2019/12/23(月) 21:26:36.07 ID:qZ1/nSQb.net] startコマンドでAPを起動後、「F11」をバッチファイルから入力するには、どう記述すればいいのでしょうか?
683 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 01:34:54.95 ID:vipj7N9s.net] echo class Program{static void Main(){System.Windows.Forms.SendKeys.SendWait("{F11}");}}>temp.cs FOR /F %%i IN ('dir /b /s %WINDIR%\Microsoft.NET\Framework\csc.exe') DO set cscexe=%%i %cscexe% temp.cs temp.exe
684 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 11:28:21.34 ID:E0w5VXt3.net] >>656 ワラタ
685 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 12:39:52.06 ID:32sm7KoS.net] >>656 すごいな、プロ?
686 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 00:38:52.07 ID:ocAthgHy.net] ウイルスに使えそうw
687 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 18:09:54.44 ID:gPRn8RL/.net] 職業 プロバッチファイルスクリプター(自称)
688 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 00:09:22.71 ID:CW1qzWXe.net] %1がフォルダ名の場合、サイズを示す%~z1は0以外の数字になる 何を表しているのか不明
689 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 07:50:28.51 ID:sZ8rOkNi.net] エントリーレコードのsizeじゃね?テキトーmaybe
690 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 12:01:21.14 ID:c8Bqzbdx.net] >>662 そんな数字が多いですね \windows\winsxs や * だと違う表示も出るので意味不明、バグなのか
691 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 17:54:09.99 ID:LCDlLvJS.net] for の %~tI のみたいに簡単にディレクトリの作成日時を取得する方法教えてください dir /tc 何か | findstr findstr /e /c:"<DIR> ." みたいにして取り出して整形するのは何か間違えている気がしてならないので
692 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 20:56:32.19 ID:gZNl6+48.net] %~t1 とかで出てくるのは更新日時じゃなかった? 作成日時ならそれでいんじゃね? for /f "skip=3 tokens=1-3,5,6 delims=/: " %a in ('dir /tc %windir%') do ( echo %a%b%c%d%e goto :LOOPOUT ) :LOOPOUT pause 日時はシステム依存で表示形式変わるので整形したい形に適宜tokensやdelims、echoのとこ弄るといい 何に利用するのか知らないけど powershell なら秒まで取得出来るしバッチより痒いところに手が届く
693 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 20:59:21.16 ID:gZNl6+48.net] 修正 %a→%%a echo %%a%%b%%c%%d%%e
694 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 08:18:43.19 ID:6GenP8Ub.net] ありがとうございます 何か一発でディレクトリ作成日時を取り出すなら PowerShell 使おう、 って話になるんですね、ミリ秒単位までいけるみたいですし
695 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 09:56:56.50 ID:+cYn5CAB.net] forfiles でフォルダの更新日時も得られる、ただしファイルが多いと遅い forfiles /M ファイル名 /C "cmd /c echo @fname @fdate @ftime" dirだと得られない秒もOK、仕様がばらばら、バッチは不思議
696 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 13:02:11.21 ID:fh28MJ7p.net] 気まぐれに試してみたらskip=2と3の結果が同じでskip=4だった ifでちゃんと絞った方が良さげ for /f "tokens=1,3,4* delims= " %a in ('dir /ad /tc %windir%') do @if "%d"=="." @echo %a %b
697 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 01:23:14.19 ID:/SGph6WX.net] dir ? 親DIRがピリオド2文字なのに なぜ表示されるのか
698 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 07:59:26.77 ID:T5YxFwCT.net] . と .. はディレクトリ作成時に同時に作成されルート以外の全ディレクトリに存在する特殊な .link のようなモノ だから .. の(作成|更新)日時は自ディレクトリと同じ .. は親ディレクトリを指し示すが親ディレクトリとは別のモノ なぜと問われても、そういう仕様だから、としか
699 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 09:10:30.39 ID:/SGph6WX.net] >>671 ピリオドは区切り文字であり、 ワイルドカードの?の文字数のカウントに含まれず。 ピリオドが先頭だと、最初のトークンは空文字列となり、 ?は一文字以下の文字列を表すので、それに合致するわけかな。 ちなみに >>670 はそれより前のレスとは無関係
700 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 07:41:36.68 ID:QOfK3b7c.net] >>670 dir /b ? だと表示しない謎
701 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:00:53.84 ID:VNkic2h1.net] ディレクトリと同じ扱いだから
702 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 09:51:26.33 ID:8LUwvv7f.net] 先頭にドットがあると要注意だよな ワイルドカードがドットを無視する場合があるから >copy nul .txt >copy nul txt >dir/b .txt txt >del txt* >dir ファイルが見つかりません
703 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 10:00:17.73 ID:cX66OF4O.net] 簡単な処理だからbatでいいかと思って書き始めたら思ったより複雑になって、なんでbatで書いちゃったんだろってなるのいい加減
704 名前:竄゚たい [] [ここ壊れてます]
705 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 05:17:30.74 ID:yWGnEtOx.net] @echo off for /L %%a in (1,1,666) do set /a a+=%%a for /L %%a in (2,2,666) do set /a a+=%%a echo %a% pause for /L で遊んでたらなんか凄いの見付けた
706 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 07:12:55.26 ID:hqwlnXXW.net] >>676 PowerShellでいいんじゃね?
707 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 04:34:01.53 ID:AQjsaOZ5.net] ドラッグ&ドロップ したファイル名を表示させようと思ってんだけど win10です テスト.bat ----------------------- @echo off for %%f in (%*) do ( echo %%f ) pause -------------------------- だとドラッグドロップしても画面が速攻消えてうまく起動しないんだけど( ちなみに @echo off echo %1 pause だけだとちゃんとフルパスで表示されます %%と%の違いってなんですか?
708 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 05:40:03.52 ID:FVJQifjo.net] 引数が最低1つ以上の場合 :LOOP echo "%~nx1" shift if not "%~1"=="" goto :LOOP pause 引数が0個の可能性がある場合 :LOOP if "%~1"=="" pause &exit /b echo "%~nx1" shift goto :LOOP
709 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:29:31 ID:B/evOggr.net] shift使わない方法でお願いします
710 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 08:39:02 ID:FVJQifjo.net] >>679 その方法だとファイル名やPathに&とか全角spとかダメ文字含む+半角spが無くて 引数がクオートされていない場合に上手く行かない がこの場合引数欠けるだけだと思うので落ちるのは文字コード(ShiftJIS)と改行コード(CR+LF)を確認
711 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 18:45:30.02 ID:Xdf1G9+g.net] WSLって専用スレあったりする?
712 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 18:48:00.37 ID:T5MzU9c3.net] >>680 あー>>680 のやり方の方がいいわせか >>682 できましたありがとう
713 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 06:36:29 ID:77YAYmoS.net] >あー>>680 のやり方の方がいいわせか そうじゃない。いいも悪いもない。こういう方法もあるよと提示しただけ バッチはどうやってもバグを内包する。極論動けば何でもいい バグを発生させないよう限定された条件の元で利用するかバグ避けコードを書くかになる そういったのを理解した上で簡単な事をやるくらいならいいけど 少し複雑な事をしようとすると確実にあちらを立てればこちらが立たずで行き詰まったり面倒な事になる 面倒を避けたいなら初めからPowerShellとかでやった方がいい 今から覚えるなら尚更
714 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 08:02:35 ID:UuH5oHRt.net] >>679 ドラッグ&ドロップ したファイル名に たぶん ) があるんだろう a(1).txt とかね なぜ落ちるか自分で考えてみろ
715 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 23:29:59.70 ID:jJ2WRqDf.net] >>686 それな バッチはこういう罠があるからPSに移行したわ コメント欄に迂闊に括弧も使えないしこわいこわい
716 名前:デフォルトの名無しさん mailto:sage [2020/01/23(木) 20:57:19.47 ID:qiuXI8ht.net] ネストされた環境変数が展開されない事象について https://social.technet.microsoft.com/Forums/ja-jp/0add404a-4157-416f-bf15-0ad455102d85/12493124731248812373124281238329872226592279325968123642363738?forum=Wcsupportja
717 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 21:47:29 ID:Nyn5xlpx.net] 2つのウィンドウで別フォルダを表示してファイル存在の有無によって選択/解除ができその後コピーや移動ができる、そんなファイラーがあったら便利だなと探してました。 WinZIP関係のソフトで7-zipというのがあり、なぜか
718 名前:解凍するとその中に7-zip file managerというのが入っていて 起動してみると左右で別フォルダを表示することができオッ、と思ったのですが、存在を比較する機能はありませんでしたorz ファイル存在比較 で検索したら 【バッチ作成】の文字が目にとまりページを開くと次のようなバッチファイルでした。コピー/移動作業前の確認用に 便利だなと思いました。実際はif existでもいいし、自分用に少し書き換えました @echo off echo AにあってBに無いファイル pushd \A for %%X in (*) do if not exist \B\%%X echo %%X popd echo BにあってAに無いファイル pushd \B for %%X in (*) do if not exist \A\%%X echo %%X popd popd、pushdってアスキーのラーニングシステムシリーズ本のMS-DOSのやつで最初に書かれていたんだけどまったく使わないわなんて思ってそのままでした。 [] [ここ壊れてます]
719 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 23:31:16 ID:Jc09ZNe5.net] そんなことまで無理にcmdでやらんでも・・・ WinMergeすら入れさせてもらえない環境なのか?
720 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 09:15:34 ID:+0QHC3Wk.net] 日記?
721 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 22:49:16 ID:lbmGsP+l.net] "送る"って意外と不自由なんだな… バッチファイルでワンクッション入れて(゚д゚)ウマー
722 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 23:14:40 ID:Vj4Y99PX.net] 何が不自由なの
723 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 20:40:29.71 ID:6k+E856c.net] このバッチで何か入力しても a が消える @echo off set /p a=data= rem %a=% echo data=%a% pause
724 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 22:45:14 ID:VR7HU+gm.net] >693 勉強不足があるかも知れんが ・さっさと画面を閉じちゃう(cmd/kで回避) ・%1に入れてくれない ・ファイル名の後ろにオプションが付けられない
725 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 23:26:29 ID:D5cDwkr0.net] ワンクッションってそういう意味か 昔からスクリプトを送るに登録することなんて当たり前のことだったけどね むしろexeしか登録しない人はこのスレにはいないとまで思ってた
726 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 11:16:38 ID:JWfC0/9e.net] >>694 何かエラーすると正常になるよ(笑) @echo off set a=123 rem %a=% if defined a (echo 1) else echo 0 echo a=%a% nul 2> nul if defined a (echo 1) else echo 0 echo a=%a% pause 結果 0 a= 1 a=123
727 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:23:32 ID:62ExnvKA.net] 叩いたらスクリーンセーバーをオフにしたく、killでスクリーンセーバーのscrファイルを終了させるバッチを作ったんだけど、Windows10のタブレットモードで動かすとスタートメニューが起動してしまう。 元々立ち上げてたソフトを表示したいんたけど何か良い方法ないかな? ソフトを立ち上げっぱなし→スクリーンセーバー起動→条件下でスクリーンセーバーkillバッチ→立ち上げてたソフトに戻る ってのにしたいのにkillバッチ→スタートメニューになってしまう あと、バッチを走らせると一瞬黒いcmd画面がでるのでvbs経由で画面を出さないようにしようとしたけどこちらもうまくいかない…
728 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 13:13:43 ID:0DoxGo8j.net] スクリーンセーバー動いてるのに、 どうやってバッチ叩いてんの? さっぱりわからん
729 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 23:18:37.16 ID:B/3TWI1a.net] >>698 ネタだよね?
730 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 12:30:00.59 ID:DitzTCfU.net] 何かをトリガーにしてタスクから叩くって事じゃないかな
731 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:11:28 ID:DSTYXSth.net] 特定のキー操作で解除するタイプのスクリーンセーバーなのかな? でもそれならそれでkillするんじゃなくて該当のキーを送ればよいだけな気がするけど
732 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:51:57.47 ID:hksaF/sY.net] Windows7標準のmklink
733 名前:でシンボリックリンクを作ると リンクのタイムスタンプ(作成、更新、アクセスいずれも)は リンク先ファイルのタイムスタンプに関係なくリンク作成時点のものになり 普通のファイルのようにはタイムスタンプを変更できないようだけど 変更する方法ある? ハードリンクなら同じものを見ることになるから勝手に揃うけど 使い分けの方針が定まらなくてあまり使ってない [] [ここ壊れてます]
734 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 23:47:43 ID:9k84sg+E.net] >>703 シンボリックリンクの実体はファイルだからSetFileTimeで変更できるらしいぞ らしいってのは俺がシンボリックリンクつかったことないからね
735 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 23:11:39 ID:2Mmdz3hG.net] Windows Vistaは2017年にサポートが終了しましたがWindows Server 2008向けのセキュリティ更新プログラムを手動でインストールすることができていました。 ところがどの順番でどれをインスコすればいいのか面倒、、、それを解決するバッチプログラムを作った方がいます。 バッチファイルの記述がフムフム、へぇ〜という感じで自分にはとても勉強になりました。興味ある方はどぞ 創造の柱 blog.livedoor.jp/pillars_of_creation/archives/1831755.html
736 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 10:56:05.36 .net] このスレで聞くべきなのか分かりませんが、Windowsで数千個のPDFを一括処理したいので、取りあえずここで聞いてみます。 PDFをAcrobatで開いた時のプロパティ(「文書のプロパティ」で、"表示"、"ページレイアウト"、"倍率"を設定できますが、 1つ1つ手作業で設定するのはさすがに無理です。 Javaの様なプログラミング言語でも、他のアプリでも何でもいいんですが、この文書のプロパティを一括で設定する方法って何がありますか?
737 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 18:54:16 ID:k6OnWQi4.net] それってAcrobatのデフォルトの表示方法を変えればいいんじゃない?
738 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 19:52:05 ID:LC2xv/4E.net] 変更前後のAcrobatのレジストリをエクスポートしてdiff比較してどこが変わってるか確認するのが最初にやることだろうね
739 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 20:27:13.25 .net] >>707 Acrobat側の表示方法を変えるのじゃ無く、PDF側で変えたい
740 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 20:53:17.46 ID:k6OnWQi4.net] そもそもPDF側に表示方法が保存されてるものなの? 結局Acrobat側の問題じゃない?
741 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 22:35:05.89 ID:tH0Sn0AY.net] 「pdf コマンドライン ページレイアウト」でググったら cpdf (Coherent PDF Command Line Tools) を紹介するサイトが出てきた これ、見開きを縦スクロールにしたり単ページにしたりできて面白い "倍率" が 2017/10 の時点で無理らしいけど
742 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 01:20:56.78 ID:3WOBAGMl.net] ID消して質問してるのがすげー腹立つな 本当に解決を望んでるなら逆にコテ付けるぐらいできんのか
743 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 02:44:24 ID:X7klH3J+.net] windowsってことだけどpdfいじるならMac OSのautomatorじゃね?知らんけど
744 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 11:05:03 ID:6HUykZ9A.net] 今でもたまに使うけどUTF8系のスクリプトとの相性がめっちゃ悪いな いちいちコードページ指定するとなんかウィンドウが切り替わって重いし cmdをchcp 65001 (UTF8)で常用するって現実的じゃないよね?
745 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 14:03:40.50 ID:a+OnqKl3.net] MSはレガシーのために保守してるだけだろ powershell使え
746 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 16:57:49 ID:Vod
] [ここ壊れてます]
747 名前:BEB+r.net mailto: 例えば、こんなバッチをutf-8で作成して実行する。 できたtest.txtを見たら1行しかない。なんでだ。 @echo off chcp 65001 call :test > test.txt exit :test echo テスト echo テスト [] [ここ壊れてます]
748 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 17:12:48 ID:fYZW+FI9.net] このスレで、utf-8 のバッチファイルにするなら、 行末は半角英数な文字にしとけ というのを学んだ、>>262 からの流れ なんでなのかはいまだに知らない
749 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 17:22:50 ID:D5FH+wQt.net] 2つめのechoがエラーになってるね echo テスト echo テスト と間に空白行を挟めば正常だがどういう理屈なのか分からん
750 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 17:31:32 ID:VodBEB+r.net] れすサンクス
751 名前:デフォルトの名無しさん [2020/04/21(火) 19:56:52 ID:vK3trFFL.net] %2つというのは、何らかのエスケープですか? また、forを使うときにfor %iなどとしますが、%の意味がよくわかりません
752 名前:デフォルトの名無しさん [2020/04/21(火) 21:11:11 ID:vK3trFFL.net] フォルダ内のファイルを連番つけてリネームする方法はわからないでしょうか forを使用してインデックスを連番として付与する感じだと思うんですが ファイルはこんな感じです 犬.txt 猫.txt 猿.txt
753 名前:デフォルトの名無しさん [2020/04/21(火) 21:17:03.32 ID:FdhLTsrP.net] >>720 %は互換性や拡張などのおかげで大変ややこしい事になっている 説明するには小一時間かかるのでここでは控える事にする
754 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 21:26:09.14 ID:M3jMZi3+.net] >>720 %は変数を定義する時に使うよ %iで「iという変数」になるよ バッチプログラムで使う時は%%iにする必要があるよ https://www.pg-fl.jp/program/dos/doscmd/for.htm 「%」のページも読んだ方が良いよ
755 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 22:46:58.98 ID:HADG6GDb.net] >>721 Ruby で作った。 ただし、DryRun なので実際には実行されません。 001.txt, 002.txt に変わります require 'fileutils' # 絶対パスのディレクトリ名の後ろに、* を付けること! # . で始まる、隠し directory, file を除く dir_path = "C:/Users/Owner/test/*" target_dir = File.dirname( dir_path ) # ディレクトリパスだけを取り出す Dir.glob( dir_path ) .select { |full_path| File.file?( full_path ) } # ファイルのみ .each.with_index( 1 ) do |full_path, idx| # index は、1 から始まる # format で、0埋め3桁表示にする。extname は拡張子 # ファイル名は、001.txt, 002.txt など dest_path = target_dir + "/" + ( "%03d" % idx ) + File.extname( full_path ) FileUtils::DryRun.move( full_path, dest_path ) end
756 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 22:54:20 ID:h/bjIQIw.net] rubyはスレ違い
757 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:04:39.20 ID:s3lLVMWt.net] 3桁連番付けただけ @echo off & set n=1001 for %%i in (*.txt) do set a=%%i& call :x goto :eof :x ren "%a%" "%n:~1%-%a%" & set /a n+=1
758 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:14:39.66 ID:J0u+GdjC.net] リネームは結構難しい リネーム後のファイルが再びリネーム対象となる場合がある
759 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:27:06 ID:alPdontK.net] set N=1000 :LOOP if "%~1"=="" exit /b set /a N+=1 ren "%~1" "%N:~-3% %~nx1" shift goto :LOOP
760 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:28:37 ID:s3lLVMWt.net] リネーム後のファイル名が既存だったりするし
761 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:49:32 ID:GY5lnYbX.net] リネームは一覧を一旦ファイルに出力してから回した方が安全だよ それとファイル名にUNICODE文字が混ざってる場合も考慮するとバッチファイルではやらん方がいいよ
762 名前:vbsかjsかpowershell [] [ここ壊れてます]
763 名前:724 mailto:sage [2020/04/21(火) 23:57:26 ID:HADG6GDb.net] >>724 のRuby では最初に、Dir.glob( "C:/Users/Owner/test/*" ) で、そのフォルダ内のすべてのファイルを取得しているから、 各ファイルを、rename していく途中で、 rename後のファイルを、再びrenameすることはない
764 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 00:04:16 ID:vEO7RF6u.net] >>730 ファイル出力というかfor/fでdir出力の取り込みでいいんじゃね? UNICODE文字は関係あるかね?
765 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 06:52:59.32 ID:gobEj/px.net] >>721 @echo off & set "n=1001" & set t=tmp_dir md %t% & for %%i in (*.txt) do set a=%%i& call :x move %t%\* . > nul & rd %t% & goto :eof :x move "%a%" "%t%\%n:~1%-%a%" > nul & set /a n+=1 tmp_dirの名前は何でもいいが既存の名前を避けてください。
766 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 09:12:13 ID:UZ0N9G3p.net] >>732 >UNICODE文字は関係あるかね? SJISに含まれてない文字が入ってると酷いことになる
767 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 10:16:03 ID:MJO3kN2U.net] 駄目文字のせいでSJISコードがバグると言うならまだわかるが その逆って意味がわからないな MSは全くテストしてないってことか
768 名前:デフォルトの名無しさん [2020/04/22(水) 11:07:12 ID:/W5c3Vma.net] >>722-735 どうも 勉強中です
769 名前:デフォルトの名無しさん [2020/04/22(水) 11:53:22 ID:/W5c3Vma.net] 複数行を一行にまとめる場合は、&でつなぐんでしょうか? これが改行と同じ意味でしょうかね。
770 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 12:07:17 ID:vEO7RF6u.net] >>736 @echo off & set n=1001& chcp 65001 > nul for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x goto :eof :x ren "%a%" "%n:~1%-%a%" & set /a n+=1 >>734 コードページ変えればいいだけ
771 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 19:08:42.79 ID:nR8TNEgs.net] >>737 複数行をまとめるって、、 文字列の足し算の話? コマンドを複数行に分割して記述する話? (継続文字のこと?)
772 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 19:11:46 ID:nR8TNEgs.net] >>739 または複数コマンドを一行で記述する話?
773 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 20:05:53.95 ID:j1ZYXyL3.net] >>735 コマンドプロンプトは自体はUNICODE対応 各種コマンドもUNICODE対応 だけどバッチファイルは過去の互換性が必要なので デフォルトではOSの設定(日本語だとSJIS)の文字コードとして使われる。 その設定はchcpで変えることが出来る 単にコマンド呼び出しをしてるだけならUNICODEとして扱われるが forでバッチファイルの世界に招き入れたら、 chcpの設定によって文字コードの変換が行われる テストはしてるだろ。この文字コード変換は仕様なので バッチファイルでUNICODE文字を扱いたければchcpで UTF-8に変更しなければならないというだけのこと
774 名前:デフォルトの名無しさん [2020/04/23(木) 06:47:17 ID:153+oMoq.net] >>739 バッチファイルではなくて、複数行をコマンドプロンプト上で実行したい場合があったりします
775 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 08:24:04.38 ID:5iduMLE+.net] >>742 複数行をコピペじゃ駄目なの? 例えば、この内容をメモ帳に記述しておいて rem ―- ここから ―― dism /online /cleanup-image /restorehealth sfc /scannow rem ―- ここまで ―- 4行をコピペする
776 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 09:07:36 ID:Z6s7Y3Lu.net] >>742 複数コマンドを1行で実行したいということなら、、、 A & B ... A実行後にBを実行 A | B ... Aの実行結果をBに渡して実行 A && B ... Aが成功したらBを実行 A || B ... Aが失敗したらBを実行 長いコマンドを複数行に分割したいなら、、、 Sentence1 ^<改行> Sentence2 (サーカムフレックスで継続)
777 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 12:04:05.59 ID:qTwHi2aC.net] ()で囲めばいい。 (timeout /t 300 cd d f:\hoge for %f in ( *.jpg ) do ( ・・・ ) ) 正式名称が何かは知らないが勝手にブ
778 名前:ロックと呼んでる。 [] [ここ壊れてます]
779 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 14:59:02.07 ID:WFX6w8Jo.net] >>744 そういうのがあるのか、| 以外知らなかった
780 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 14:59:42.71 ID:WFX6w8Jo.net] >>745 これも知らなかった
781 名前:デフォルトの名無しさん [2020/04/23(木) 15:25:29.03 ID:153+oMoq.net] >>743 コピペでももちろんいいですが、知っておきたかったです
782 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 16:03:20.39 ID:eZrYYRVL.net] なんでバッチ嫌なの?
783 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 17:31:56.25 ID:P2MaiEJS.net] >>748 だったらこんなところで聞くんじゃなくて 一次資料に当たる努力をしなよ
784 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 21:20:47 ID:M8I+Acr1.net] >>745 それ駄目。 遅延変数展開しないと痛い目に遭うよ。
785 名前:デフォルトの名無しさん [2020/04/26(日) 18:05:24 ID:FVxXRtXH.net] 連番をつけるコードでまだ躓いています hoge.txt hogehoge.txt を hoge(1).txt hogehoge(2).txt としたいです echo off & for %i in (*.txt) do (ren %i ???) このはてな部分に連番を指定するためにインデックスを指定しないといけないと思うんですが、%i自体にはファイル名が入っていると思います。インデックスは取れるんでしょうか?
786 名前:デフォルトの名無しさん [2020/04/26(日) 18:36:58 ID:FVxXRtXH.net] バッチでset /aなどのオプションがありますが、/aは計算を伴う場合に使うそうです。 この/aに意味はあるのですか? 何らかの単語の略だと覚えやすいんですが。
787 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 18:40:50 ID:Pfsg7A5O.net] その程度ぐぐれば出てくるでしょ インデックスのカウント用変数が必要+変数の遅延展開 丸括弧のエスケープが必要 aはarithmeticの略
788 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 20:15:42 ID:cczyU4e/.net] @echo off & set n=1& chcp 65001 > nul for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x "%%a%%" goto :eof :x ren %1 "%~n1(%n%)%~x1" & set /a n+=1
789 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 22:00:20.95 ID:zKIVBOto.net] 1Point ノウハウ dir ですべてのファイル、フォルダを表示したい場合は dir /A
790 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 22:18:32 ID:DxwpR+0O.net] 普通に do call :x "%%~i" でいいと思うんだが何故いちいち set a=%%i とかしてるの? 何か理由あるん?
791 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 22:22:15 ID:YV1WqKFq.net] >>757 ファイル名に「%」入ってるとマズくない?
792 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 05:49:29 ID:ceHl0duT.net] シェルスクリプトってお手軽省略表記にこだわりすぎるあまり エスケープ処理が複雑化しバグりやすくなって本末転倒だよな
793 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 05:57:02 ID:l2PF55i3.net] そんなところで躓く能なしは、他の言語で書いても同じだよ
794 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 13:01:40 ID:DKHJb1hS.net] 他の言語でもエスケープは必要なことはあるし同じこと ただbatのように自身を置換して逐次実行するするようなことは eval系の命令を使う場合なのでほぼ無いに等しいので意識されないだけ
795 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 16:44:00 ID:3RXW9/E3.net] 要するに分かりにくい ここで初心者にイロハから質問されてもレスがしにくい リネームソフトでも使え
796 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 17:37:46 ID:7TaGv6sC.net] >>759 シェルスクリプトでエスケープ処理が複雑なんて したことがないんだがどういうケース? むしろバッチファイルのほうがややこしすぎる バッチファイルでダブルクォートはいつつけるか言える? スペースが含まれたファイル名とか バッチファイルでこれの出力結果は echo "C:\Program Files" ↓これです。(ダブルクォート含む) "C:\Program Files"
797 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:05:03 ID:3RXW9/E3.net] どういうケースって、すぐ上の奴だろ
798 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:18:07 ID:7TaGv6sC.net] >>764 もしかしてバッチファイルとシェルスクリプトの違いわかってないの?
799 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:19:14 ID:7TaGv6sC.net] シェルスクリプトっていうのはUnixやLinuxの /bin/shとかbashのことなんだが
800 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:20:52 ID:RB8xSOb3.net] ファイル数
801 名前:からんけどリネームソフト使えば一分かからんで終了 [] [ここ壊れてます]
802 名前:デフォルトの名無しさん [2020/04/28(火) 20:35:28 ID:C/yTg51l.net] >>766 俺の定義ではバッチファイルはシェルスクリプトだ config.sysに shell=command.com /e:1024 とか書いてたからな
803 名前:デフォルトの名無しさん [2020/04/28(火) 20:39:22 ID:C/yTg51l.net] ちなみにMS-DOSにはエスケープ文字なんて無い
804 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 20:40:45 ID:f4hk4dsD.net] >>768 意味わかんないから調べたが、 今では全く通用しない話じゃねーかよ。 てめーの定義を押し付けんな。
805 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 20:51:25.37 ID:l2PF55i3.net] >>770 頑張ってググってきたんだからほめてやれよ
806 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 22:38:03.31 ID:0mXw36Cx.net] >>769 Delims句でイコールを区切り文字にしたいときはサーカムフレックスでエスケープする必要があるときがあるけどね。
807 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 23:55:09.09 ID:3RXW9/E3.net] cmdはシェルだ。定義も糞もない
808 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 00:05:03 ID:kLiglYQz.net] >>768 cmdじゃないじゃん
809 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 06:34:57 ID:bLWOmnfL.net] UNIXとかでshやbashがログインシェルとかインタラクティブシェルになるのと同じだよ shやbash=cmd シェルスクリプト=バッチファイル シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
810 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 06:56:52.10 ID:SXZJio07.net] とはいえ逆にunixでバッチがどうとか言うと違和感あるしな >>766 みたいな感覚が一般的
811 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:15:11 ID:sus1L+2H.net] >>775 > シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前 シェアならLinuxのシェルスクリプトの方が多いよ 今はsystemdに置き換えられつつあるが、起動処理の多くで シェルスクリプトが使われていた。 各アプリのビルドなどでもシェルスクリプトは使われている。 それに対してバッチファイルは殆ど使われていない。 そもそもWindowsのコマンドは、他のコマンドの出力を読み取って 別のコマンドで処理するように設計されていない 単に呼び出すだけ。だからバッチファイルという名前になってる 例えばcopyコマンドであってもシェルスクリプトであれば、コピーが正常に終了した場合 なにも表示されないのでスクリプトとして使いやすいが Windowsのcopyは人間用のメッセージがいちいち出る コマンドの出力を変数に入れるだけでも大変 遅延環境変数の展開を使わなければ変数の中にメタ文字的なものが入るだけで簡単に壊れる そもそもの設計思想がスクリプトを組むためではなく、単にコマンドを並べるという使い方を するためだからバッチファイルはシェルスクリプトだけでなく PowerShellスクリプトやVBScriptよりも使いづらくなってしまっている 一方、PowerShellスクリプトやVBScriptはコマンドをよびだすのが 面倒になってるので両立してるシェルスクリプトにはかなわない
812 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:22:12 ID:VzuV0Enx.net] アスペがうだうだ言ってるだけで全く「会話」が進行していないな
813 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:36:25.95 ID:SXZJio07.net] スレチだから、もうやめろ
814 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:51:09.96 ID:sus1L+2H.net] やなコッタ
815 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 22:15:38.24 ID:f6LPbIhG.net] パンナコッタ
816 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 22:43:10 ID:sus1L+2H.net] メロンパンナ
817 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 00:25:02 ID:6g7fIyNp.net] マンコッタ茶園のアッサムティーをすすりながら仕事するのが何よりの贅沢
818 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 23:56:54 ID:4NDFLh29.net] アッサムティー好き、いいよね
819 名前:デフォルトの名無しさん mailto:sage [2020/05/01(金) 20:45:42 ID:I+dUmCMk.net] カタコッタ
820 名前:デフォルトの名無しさん [2020/05/07(木) 18:46:37 ID:jiFNKMfo.net] 滅茶苦茶初歩的な質問ですまん バッチファイルからPythonスクリプト実行してPythonスクリプト側でprintした文字列をバッチファイル側で取得する方法ってある?
821 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 18:51:16 ID:cw3NlGJG.net] FOR /F ["オプション"] %変数 IN
822 名前:('コマンド') DO コマンド [コマンド パラメーター] または usebackq オプションの場合: FOR /F ["オプション"] %変数 IN (`コマンド`) DO コマンド [コマンド パラメーター] [] [ここ壊れてます]
823 名前:デフォルトの名無しさん [2020/05/07(木) 18:51:30 ID:jiFNKMfo.net] もしくはコマンドプロンプトに出力された文字列を出所問わず取得したい
824 名前:デフォルトの名無しさん [2020/05/07(木) 19:01:03 ID:jiFNKMfo.net] >>787 ありがとう、いけたわ logzero使ってるライブラリでこれやろうとすると途中で処理が止まるけど、これは他の問題かもしれんな
825 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 19:33:24 ID:lct9jPsZ.net] 昔だったら tail -f
826 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 19:34:28 ID:2gF3mugX.net] >>789 標準出力じゃなくて、標準エラー出力の方にprintしてるんだろ ('py foo.py 2^>^&1')
827 名前:デフォルトの名無しさん [2020/05/07(木) 19:47:29.96 ID:jiFNKMfo.net] logzeroさらっと調べても設定全く分からんので今回は該当部分の出力だけlogzero.infoからprintにして無駄な出力を省いた 出力取得できたのでまあよし
828 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 20:17:47 ID:2gF3mugX.net] >>792 @echo off setlocal enabledelayedexpansion set n=0 for /f "tokens=*" %%i in ('py test.py 2^>^&1') do ( set IN!n!=%%i set /a n+=1 ) set /a n-=1 for /l %%i in (0,1,%n%) do ( echo.!IN%%i! ) endlocal
829 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 09:27:08.95 ID:hWMQZbFi.net] >コマンドプロンプト入門 Kindle版 2020年にこれを出すとはチャレンジャーすぎるな
830 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 16:03:14 ID:PeLhefIP.net] amazonで、確認すると、2019/09の出版みたいですね。 どうせなら、power shellの本出したほうが良かったかも。
831 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 18:45:23 ID:NJ7uTfC9.net] ファイル名に「b」を含むファイルをコピーするときに たとえば abc.txt というファイルがあって copy *b*.txt def.txt がオッケーで copy *b* def.txt がエラーなのはなぜですか? *は0文字以上の文字列なので 両方とも成功すると思っていたのですが
832 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 19:05:09 ID:fhydWmjd.net] >>795 KindleストアにPowerShellのがいっぱいあるやん
833 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 19:55:35 ID:UaCqmgBQ.net] >>796 普通にできるけどどんなエラーが出るの? ちなみにその書き方だと *a* が複数ある時は連結されてしまうけどな
834 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 19:59:26 ID:fhydWmjd.net] *b* が一つでもゴミが付くしね(0x1A)
835 名前:デフォルトの名無しさん mailto:sage [2020/05/23(土) 20:41:18.51 ID:H5g1ckea.net] Windows Terminal で音を鳴らすにはどうすればいいですか コマンドプロンプトではControl-Gを出力してたんですが Windows Terminalでは無視してくれやがります
836 名前:デフォルトの名無しさん [2020/05/23(土) 22:23:07.24 ID:105ldQbQ.net] start beep.wav
837 名前:デフォルトの名無しさん mailto:sage [2020/05/23(土) 22:45:59.81 ID:H5g1ckea.net] そんなんだったら >copy con beep.cmd echo ^G waitfor /T 3 waiting ^Z 1 個のファイルをコピーしました。 >start /min cmd /d/c beep.cmd とするけどもっといい手はないかなと
838 名前:デフォルトの名無しさん mailto:sage [2020/05/23(土) 23:00:15 ID:H5g1ckea.net] ああstartで自分を呼んで鳴らせばいいんだ 自己解決しました
839 名前:デフォルトの名無しさん mailto:sage [2020/05/24(日) 00:25:04.68 ID:VYuvM9gt.net] >>802 echo ^G>beep.dat としておいて type beep.dat beep.dat は 0x07 (1byte)だけ
840 名前:デフォルトの名無しさん mailto:sage [2020/05/24(日) 00:40:12.55 ID:f4O9jhZ+.net] その手がWindows Terminalでは使えないって話 https://aka.ms/terminal-documentation Windows ターミナルの概要 | Microsoft Docs
841 名前:デフォルトの名無しさん mailto:sage [2020/05/24(日) 00:46:46 ID:VYuvM9gt.net] >>805 そうでしたか Windows Terminal、使うか
842 名前:デフォルトの名無しさん [2020/06/03(水) 20:30:01 ID:H
] [ここ壊れてます]
843 名前:abAm56l.net mailto: バッチでやるような処理でも 勉強兼ねてpowershell使って処理するようにしたほうがいいですか? [] [ここ壊れてます]
844 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 20:31:25 ID:5eIQQTQm.net] 勉強でなら、そりゃそうだろと言うしかないね
845 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 20:32:34 ID:HabAm56l.net] 実務上はどうです? バッチの方が情報多いからいいんですか?
846 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 21:04:50.01 ID:mm84GRB0.net] >>809 どういう現場か知らないけど Widn7 SP1 PSv2 縛り なんて現場でPS書きたいとか思わないね。 使わせてくれる現場なら使うべきだし、そうでないならバッチをシコシコ書くしかないのよ。
847 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 21:27:53 ID:QZ+HyrOs.net] シコシコかくのよ
848 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 22:11:19 ID:JNM2fzED.net] PSでできること=C#でできることだからバッチとは全然できることが違うよ PSv2でも十分バッチとは天地の差がある
849 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 22:22:36 ID:5eIQQTQm.net] 元の質問が、「バッチでやるような処理でも」なんだけどな ちゃんと読んでるか?
850 名前:デフォルトの名無しさん mailto:sage [2020/06/03(水) 23:24:38 ID:Gm6SBE/O.net] >>809 情報量ならPowerShellの方が上だし TechnetフォーラムならPowerShellのカテゴリーあるし ポケットリファレンスの著者である牟田口大介まで出没している ストアアプリのインストールとかはPowerShell必須だし バッチのみじゃ書けない物も割と多い 処理の内容は忘れたけどバッチでやれた事を PowerShellで書いたらキー入力を要求されて かえってバッチの方が良かった場合もあるけど そんなパターンは圧倒的に少ないと思う でもウチの場合、PowerShell使いがいないから というのが最大の理由で実務はバッチだらけ 良いか悪いかならきちんとメンテナンスが出来る物が良いであるべき 個人の感想ならばPowerShellって バージョンが上がって非互換が出そうなので避けたい
851 名前:デフォルトの名無しさん [2020/06/04(木) 09:41:35.56 ID:Di3Z81qX.net] 9x系(95/98/Me)のWindows用MS-DOSプロンプトとNT系(それ以外)のWindows用コマンド・プロンプトの違いさえ 意識していれば、バッチファイルの利用は難しくないと思う。 VBScript(WSHことWindows Script Host)の場合は9x系とNT系に関係なく、WSHバージョン5.1以降かどうかさえ 気をつけていれば概ね大丈夫だと思う。 それらに比べてPowerShellは、個人的にはハードルが極めて高い。
852 名前:デフォルトの名無しさん mailto:sage [2020/06/04(木) 15:05:12.56 ID:iofqxoab.net] >>813 当然「バッチでやるような処理でも」PSなら十二分にこなせるよ このスレで話題になるような変なクセや制限もないしね
853 名前:デフォルトの名無しさん mailto:sage [2020/06/04(木) 15:12:12.70 ID:iofqxoab.net] >>814 PSはバージョン指定(-vオプション)すればそのバージョンが実行される仕組みを持ってるから互換性についてもある程度クリーンだよ
854 名前:デフォルトの名無しさん mailto:sage [2020/06/04(木) 15:16:33 ID:efimIni8.net] BATの典型的なものとしては シーケンシャルに ・外部アプリ呼び出し ・ファイルコピーや移動 ・メッセージ表示 であって、こんなものをPowerShellで書く必要は無いし、ステップ数も余分にいる
855 名前:デフォルトの名無しさん mailto:sage [2020/06/04(木) 21:18:27 ID:U7KCPoET.net] PSの話したいなら該当スレへ ここでするのはスレチ
856 名前:デフォルトの名無しさん mailto:sage [2020/06/05(金) 09:26:58 ID:YNSaAEsR.net] バッチファイル内で、複数の文字列の一部だけを羅列して、それをまとめて補完したものを変数に入れたい 具体的には set LOGFILES=%LOG%\tech\*.dat %LOG%\prog\*.dat %LOG%\win\*.dat %LOG%\newsplus\*.dat ... のように指定するのではなく setlocal enabledelayed... for %%f in (tech prog win
857 名前: newsplus) do ( set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat ) のようにして、増減や修正を簡単に出来るようにしたい したいんだけど、なんかうまく動いてくれない 何かヒントもらえますか? [] [ここ壊れてます]
858 名前:デフォルトの名無しさん mailto:sage [2020/06/05(金) 10:14:13 ID:YNSaAEsR.net] 自己解決 どうやらこんな感じで動きそう for %%f in (tech prog win newsplus) do ( call :APPEND %%f ) :APPEND set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat goto :EOF
859 名前:デフォルトの名無しさん mailto:sage [2020/06/05(金) 11:33:35 ID:xkF+o6Lc.net] >>820 setlocal enabledelayedexpansion for %%f in (tech prog win newsplus) do ( set LOGFILES=!LOGFILES! %LOG%\%%f\*.dat ) じゃダメなの?
860 名前:デフォルトの名無しさん mailto:sage [2020/06/05(金) 11:53:35.34 ID:YNSaAEsR.net] あれ?出来ますね 実は!で囲むのもやってみた(つもりだった)んだけど (たぶん、どっか別のちょっとしたところでミスしてて) その時はうまく動かなかったんですね 失礼しました
861 名前:810 mailto:sage [2020/06/06(土) 00:36:10 ID:ZNTMwsEj.net] >>817 業務システムのくせに -v の無いPSスクリプトを Win7 上で動かしてるクソシステム、あるよ。改修したくもないけど。 PS は ver.3 で破壊的変更がなされたから、ver.2 に合わせて勉強するだけ無駄だと言われている。 core になって COM も切られたから Word や Excel ファイルへのアクセスも今後どーなんの?的な段階。 また、PS が「管理の自動化」を目指しているのに対して、バッチや WSH は「一般ユーザーの定型操作の自動化」を目指しているから方向性自体が違う。 おまけにバッチとWSHはもう仕様変更が無いという強みがある。 等価なものを個人的に PS でリライトしてみる、はいいと思うけど、本番環境に入れるのはNGかな…。
862 名前:デフォルトの名無しさん mailto:sage [2020/06/09(火) 07:37:38.68 ID:xQo5RGeQ.net] 長々と更新してもcmd変わらず放置 不具合あればPS使えということか バッチに未来は無い
863 名前:デフォルトの名無しさん mailto:sage [2020/06/09(火) 21:59:44.80 ID:Phlj4K/L.net] cmdはもう更新しないってアナウンス出てなかったっけ?
864 名前:デフォルトの名無しさん mailto:sage [2020/06/09(火) 22:16:29.17 ID:aAgqnyde.net] バッチ処理って簡単な定時処理に使ってる人がほとんどだろうし 現状維持でこのまま使えたらそれでいいよ
865 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 08:05:01.57 ID:Nip9LUw0.net] 教えてください。 引数以外でショートカットの情報をバッチに渡すことはできますか? バッチ自体のファイル名、パス名を取得する方法はよく見かけますが、、 ショートカットのファイル名や親フォルダの情報をバッチに渡す手段ってやっぱりないですかね?
866 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 10:09:40.34 ID:Rvue1P4U.net] ショートカットって何の?起動したバッチファイルのもの? ショトカ自体は dir *.lnk で取れるけど複数あると特定は面倒臭かったり無理かも どのlnkからバッチが起動されたか?は作業ディレクトリがそのlnkと同じだとか限定条件下でないと無理じゃないかな
867 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 10:41:39.28 ID:Nip9LUw0.net] >>829 やっぱり無理そうですね。 ショートカットのファイル名をショートカットのコマンドラインに渡してバッチに引き渡そうと企んだのですが、、、 %0とか%~dp0とか記述しても記述そのままで%1に渡るだけでした。 何か方法ないのかなと思い、、あきらめます。 ご回答ありがとうございます。
868 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 11:24:19.06 ID:2FaHAA2B.net] ショートカットのプロパティで作業フォルダを弄ればいいだろ。 リンク先のバッチで%cd%参照。 ファイル名なんてリンク先に合わせりゃいいだろ。
869 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 11:26:00.19 ID:Q6c7IGAp.net] >>830 もしショートカットファイルから元のファイル名を取得したいってことなら wmicコマンドとか使えば良いんじゃない? https://stac
870 名前:koverflow.com/a/29650022 [] [ここ壊れてます]
871 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 11:45:22.44 ID:2FaHAA2B.net] プロパティのリンク先に自分のフルパスを追加してもいい リンク先のバッチで%1参照。
872 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:14:20.27 ID:Nip9LUw0.net] >>831 仰る通り。 それがメンドーだな、と思っただけです。 プロパティ弄らずにファイル名変更だけで挙動変えようかと、、、
873 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:15:45.60 ID:Nip9LUw0.net] >>832 そういうの、いろいろありますね。 VBSとかPSとか。 後者をSendToに入れてフォルダ内調査に使ったりしてます。
874 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:16:13.25 ID:Rvue1P4U.net] ショートカット名を動的に生成してダブルクリックだけでリンク先のバッチへ引数として渡したいって事なんじゃないの? ショートカット名を一時ファイル代わりにしたかったんだと思ってたけど
875 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:17:49.77 ID:Nip9LUw0.net] >>833 プロパティ弄るなら、素直に引数指定すれば良さそうです。 みなさんご意見ありがとうございます。
876 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:18:03.34 ID:2FaHAA2B.net] 作業フォルダを空欄にするだけなんだけど
877 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:20:20.62 ID:Nip9LUw0.net] >>836 ショートカットを別フォルダにコピーするだけで、そのショートカットの親フォルダをバッチに渡すということをしたかったです。 ただのめんどくさがりです。すみません。
878 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:25:13.85 ID:Nip9LUw0.net] ショートカットの代わりにバッチを呼ぶためのバッチを作ればよいことに今気づきました。 ショートカットのコマンドラインで自分を参照する記述が出来そうもないことも確認できたので収穫でした。 みなさんおつきあい頂きありがとうございます。
879 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:32:21.09 ID:Rvue1P4U.net] >>839 それなら >>838 で可能 作業フォルダを空欄にしたショートカットを目的のフォルダにコピーしてダブルクリック echo %cd% で取れる
880 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:47:38 ID:zWNqxiy9.net] 別フォルダにコピーする時点で親フォルダ分かってるんじゃない?
881 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 19:57:43.39 ID:Nip9LUw0.net] >>841 おおお、なるほど! StartInを指定しなければ、CurrentDirectoryは移動しないのか。 リンクファイル名の方は無理そうですが、親フォルダはこれでいけそうです。 感謝!! VBAのApplication.Callerみたいなのが書ければいいんですけどね。
882 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 20:09:16.72 ID:2FaHAA2B.net] 作業フォルダが空だと他所のフォルダからD&Dしたらそっちになるけどな。 あと、管理者権限で実行したらC:\WINDOWS\system32になったりする
883 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 20:15:00.02 ID:Nip9LUw0.net] >>844 そうなりますね。気をつけます。
884 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 21:58:02.09 ID:Nip9LUw0.net] すみません。もう1つ質問です。 バッチ自身を最小化して起動するときどうされてますか? これが理由の1つでショートカット起動していたのですが、代わりにバッチを使うとコンソールが表示されてしまいます。 サイトでよく見かける、@If not "%~0"... というやつは、Win7のためか機能しません。 普段は固定的に行う場合は、ショートカットやVBSをはさみ最小化実行しているのですが、、 うまい方法があれば教えてください。
885 名前:デフォルトの名無しさん [2020/06/15(月) 14:19:29.38 ID:YYrFY+5A.net] 無い
886 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 19:14:00.08 ID:X3dRtIQ2.net] >>847 了解!
887 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 19:21:32.94 ID:bzzr0fEY.net] start
888 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 21:31:09.57 ID:xZsc1Mf0.net] pause
889 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 06:44:47 ID:zfRgO9so.net] PowerShell なら、 # ショートカットファイルのフルパス $fn = "フルパス" # ショートカットファイル(.lnk)から、リンク先パス(TargetPath)を読み取る $link = $wsh.CreateShortcut( $fn ) # 画面に表示する Write-Host "$( $fn )`
890 名前:nTargetFile: $( $link.TargetPath )" [] [ここ壊れてます]
891 名前:851 mailto:sage [2020/06/16(火) 06:47:46 ID:zfRgO9so.net] >>851 修正 一番上に、これを入れて $wsh = New-Object -ComObject WScript.Shell
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 名前:キれば良いのか… [] [ここ壊れてます]
993 名前:デフォルトの名無しさん mailto:sage [2020/08/02(日) 00:01:49.63 ID:SCuZm8dn.net] >エンジンは常に(たとえ思考中であっても)コマンドの受信ができる必要があります guiからのコマンドにどういったものがあるのかまではまだ見てないけどバッチ一つじゃ無理だと思う 制御用兼入出力用Aのバッチと思考エンジンBのバッチの最低2つは要るんじゃないかな Bは候補手をtmpに書き出し続けてguiから時間て言われたらAがtaskkillしてtmp読み取りして返すとか これでもgui側でコマンド送る最低間隔何秒とかを設定出来無いと取りこぼすかも 思考エンジン部分はバッチで出来るだろうけどコマンドやり取りする制御部分はバッチでは厳しいかも
994 名前:デフォルトの名無しさん mailto:sage [2020/08/02(日) 00:12:10.36 ID:SCuZm8dn.net] > setoptionとisreadyが連続で送られてきてisreadyを認識できず、readyokを返せない あーこの時点で無理なら厳しいね バッファ用としてのプログラムを間に挟まないと で、バッファ挟むくらいならどうせなら制御も…てなるだろうし
995 名前:947 mailto:sage [2020/08/02(日) 15:10:30.75 ID:pqbO4ExB.net] >>949 やっぱそうですか… 残念ですが諦めます ありがとうございました
996 名前:デフォルトの名無しさん [2020/08/07(金) 17:37:19.06 ID:ztGuRGFM.net] フォルダが複数あり、フォルダ内の先頭のファイルネームをフォルダ名としたいです これを フォルダ1 ├ファイル1 ├ファイル2 フォルダ2 ├ファイル1 ├ファイル2 こうしたいです ファイル1 ├ファイル1 ├ファイル2 ファイル1 ├ファイル1 ├ファイル2 フォルダ名が重複した場合の処理も必要かもしれないです バッチは読みにくすぎですね
997 名前:デフォルトの名無しさん mailto:sage [2020/08/07(金) 22:11:16.88 ID:wnzPeWR5.net] >>951 そもそもツリー表現が変だと思う。 ├フォルダ1 │├ファイル1 │└ファイル2 └フォルダ2 ├ファイル1 └ファイル2 tree コマンドの出力をトラップして改変する方向で考えたら楽なんじゃない?
998 名前:デフォルトの名無しさん mailto:sage [2020/08/07(金) 22:17:23 ID:5wWI/sIC.net] >>951 エクスプローラーでの表示順と dir コマンドでの表示順は異なるけど それを考慮する必要あるの?
999 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 00:00:00.04 ID:c43C7xo+.net] for /r %%i in (.)で下位フォルダ名取得 そのフォルダ内の最初のファイル名を取得(ソート指定) 対象フォルダ名の変更 もしやるならvbs噛ませると思う
1000 名前:デフォルトの名無しさん [2020/08/08(土) 05:43:20.34 ID:jNP2OM4q.net] >>953 とりあえずいらないですが、名前順で並び替えた場合、先頭にくるものをフォルダ名としたいです
1001 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 08:06:33.19 ID:ulitZ7VR.net] >>955 だからその「名前順で並べ替え」がdirとエクスプローラーで違うって話 https://support.microsoft.com/ja-jp/help/319827/the-sort-order-for-files-and-folders-whose-names-contain-numerals-is-d
1002 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 08:25:04.94 ID:HPaGwZBp.net] どうでも良いことに拘るアホ
1003 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 09:01:08.32 ID:nLoi7MqI.net] どうでもいいと言うならテメーがどっちかに決めろや どうでもいいと言いながらできてからなんで違うんだ?とか言う奴多すぎ
1004 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 09:25:59.89 ID:XY4Xe7zO.net] ところで、質問者本人は、どちらを・・・・。
1005 名前:デフォルトの名無しさん [2020/08/08(土) 09:32:21.16 ID:d2hZRkL/.net] 仕様を全て決めないと取り掛かれないマヌケ多すぎ 無能は本筋から外れたところで発狂してろ
1006 名前:デフォルトの名無しさん [2020/08/08(土) 09:59:17.57 ID:jNP2OM4q.net] >>956 では今回はエクスプローラ側の並び順がいいです
1007 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 10:22:17.59 ID:cJmgrNkw.net] >>960 吠えるしかできない間抜け乙w >>961 ならStrCmpLogicalW()を使わないとダメだからバッチではほぼ無理
1008 名前: PowerShellかC#とかでやった方がいい [] [ここ壊れてます]
1009 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 11:11:14 ID:6XUmF/b8.net] とりあえずこんな感じ?(先頭はdir順) if "%1" neq "" pushd "%~1" for /d %%i in (*) do call :sub "%%~i" popd goto :eof :sub for /f "tokens=*" %%j in ('dir /b /on %1') do ( call :rename %1 "%%~j" goto :eof ) goto :eof :rename ren %1 %2 if errorlevel 0 call :rename-retry %1 %2 goto :eof :rename-retry rem ---todo--- goto :eof
1010 名前:デフォルトの名無しさん [2020/08/08(土) 11:14:22 ID:jNP2OM4q.net] >>962 ではcmdでいいです あるいはpython環境のほうが楽ですか? >>963 cmdのコードは理解が難しいですね、、、
1011 名前:デフォルトの名無しさん [2020/08/08(土) 12:00:51 ID:jNP2OM4q.net] globでやってみます
1012 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 12:16:11.89 ID:XwBZfJ1v.net] リネーム処理とかはもうPSの方がいいんじゃない? @echo off &setlocal enabledelayedexpansion for /f "delims=" %%G in ('dir /ad /b') do ( set N= for /f "usebackq delims=" %%H in (`dir /a-d /b "%%~G" 2^>nul`) do if not "%%~H"=="" if not defined N set "N=%%~nH" if defined N ( if not exist "%%~dpG!N!" (ren "%%~G" "!N!") else ( set dt=!date:~0,10!!time: =0! set dt=!dt:/=! set dt=!dt::=! ren "%%~G" "!N!_!dt!" ) ) ) pause &exit /b
1013 名前:デフォルトの名無しさん [2020/08/08(土) 14:01:14.15 ID:jNP2OM4q.net] pythonでは向いてないですか
1014 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 15:20:59.87 ID:IdUt1ux3.net] pythonはスレチ
1015 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 15:22:12.94 ID:0U8ymD0p.net] >>967 ならPythonスレで聞けよ…
1016 名前:デフォルトの名無しさん mailto:sage [2020/08/08(土) 16:11:06.79 ID:Uh3gedSc.net] dir /ad /b /s > tmp.txt とかで処理対象のディレクトリ名をテキストに落としてから wshでリネーム用のバッチファイルを作る方が楽かな wshではテキストを一括読みして変数に入れて テキストを順次読みしながら↑の変数の内容をバッチファイルのコマンドに変更してく 下位ディレクトリや同一フォルダ名になるときの判定などもしやすい もし失敗しても、原因を見つけやすいしリカバリーもしやすい
1017 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 04:55:36 ID:z2n3MQIn.net] 仕様がないと取りかかれないと言うが 発注者が仕様を曖昧にしておくほうが罪深いだろ 要件定義が甘くて泣きをみるのはいつも現場だ
1018 名前:デフォルトの名無しさん [2020/08/09(日) 05:42:25.80 ID:KFfdng53.net] Ruby で、チェックツールを作った 隠しファイル・ディレクトリは、どう扱うのか? ファイル名に、. がある場合に、どうするのか? require 'pathname' p base_dir = Pathname.new( "C:/Users/Owner/Documents/test/" ) folders = base_dir.children.select( &:directory? ) # 直下のディレクトリのみ p folders.length, folders files = folders.map { |folder| folder.children.select( &:file? ).first } # 直下の最初のファイルのみ # nil は、直下にファイルが存在しない、ディレクトリ nil_cnt = files.count( &:nil? ) p files.length, nil_cnt, files # compact で、nil の要素を省く hash = files.compact.each_with_object( { } ) do |file, hash| filename = file.basename.to_s # ファイル名を、ハッシュに追加していく if hash.has_key? filename # ハッシュに、既に追加されていれば hash[ filename ] += 1 else hash[ filename ] = 1 end end # 2 以上のもの、つまり、同じファイル名になったものを表示する p hash, hash.select { |key, val| val >= 2 }
1019 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 06:16:13.05 ID:wnSURbps.net] そろそろ出てくるかと思ってた
1020 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 06:38:11.28 ID:fObB6/0g.net] 予
1021 名前:ェ通り? [] [ここ壊れてます]
1022 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 08:51:35.00 ID:AwQ8dIl5.net] >>971 それはSEが無能なだけ 一から十まで決定しなくても開発は進められる
1023 名前:デフォルトの名無しさん [2020/08/09(日) 16:47:47.63 ID:0zxLTv88.net] 典型的な無能の発言だな
1024 名前:デフォルトの名無しさん mailto:sage [2020/08/09(日) 23:22:34.78 ID:TBMXuXvF.net] >>972 オワコンRubyジジイが出てきたか 困るよね、こういう老害 >>975 進められるけど手戻りして予算オーバーするわけね お前が無能
1025 名前:デフォルトの名無しさん [2020/08/10(月) 01:55:02.34 ID:9+h/1Osf.net] >>977 > 進められるけど手戻りして予算オーバーする マヌケが要件定義を担当するとそうなるねw バカな開発チームだと、なぜか「ユーザーが悪い」という認識になるww
1026 名前:デフォルトの名無しさん mailto:sage [2020/08/10(月) 03:38:30.58 ID:1F6bB0mG.net] あいまいなのはユーザーが自分でも要求を把握しきっていないためだから あとでこうしてくれやっぱりああしてくれとコロコロと仕様変更してくるのが常だろ
1027 名前:デフォルトの名無しさん mailto:sage [2020/08/10(月) 04:21:21.96 ID:mFEy/HZR.net] > あいまいなのはユーザーが自分でも要求を把握しきっていないため ブレない軸を導き出せないような無能SEは多いよね ある程度ブレてもダメージが少ないように開発するのが主流ですよ
1028 名前:デフォルトの名無しさん mailto:sage [2020/08/10(月) 11:53:14.80 ID:ZLJuvAm6.net] ある程度ブレても、いいように開発できればいいのですけれどもね。 時折、ニュースでも、開発できなかったということで、クライアント側と、 メーカー側で裁判になっていますから、難しいのだろうと思うのですが。
1029 名前:デフォルトの名無しさん mailto:sage [2020/08/10(月) 21:32:34 ID:+SLQPb+P.net] >>981 それは折衝役がシステム開発に疎いだけ 営業トークだけの人間が事態を悪化させる
1030 名前:デフォルトの名無しさん [2020/08/13(木) 21:47:50.59 ID:5FyzI8Jm.net] Soft\Soft.ini 12 LastCheck = Mon Aug 3 00:00:00 2020 13 LastUpdate = Mon Aug 3 00:00:00 2020 Soft\Plugins\update.txt 1 Update time: Wed Aug 12 23:59:59 2020 Soft.iniの12行目と13行目「Mon 〜 2020」を update.txtの1行目「Wed 〜 2020」から置換して 12 LastCheck = Wed Aug 12 23:59:59 2020 13 LastUpdate = Wed Aug 12 23:59:59 2020 のように上書きしたいのですが batファイルでどのように書けば出来ますか?
1031 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 22:00:40.82 ID:E452L2zK.net] >>983 情報不足。 ・Soft.ini の絶対に12行目と13行目か?んなこたぁねぇだろ。 ・update の日付が更新されなかった場合はどうするの? ・ていうか .ini で「=」の左右に半角空白を入れるってどういうアプリだ? 書きようはあるが、for /? と打って自分で調べた方が早いだろ、これは。 どこかの新入社員だとか学生の課題っぽいな…
1032 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 08:32:48.63 ID:SCMnTycc.net] Ruby では、これで設定できる require 'inifile' str = "Wed Aug 12 23:59:59 2020" ini = IniFile.new( :filename => "test.ini" ) ini[ "abc" ] = { "LastCheck" => str, "LastUpdate" => str } ini.write( ) # save 結果 [abc] LastCheck = Wed Aug 12 23:59:59 2020 LastUpdate = Wed Aug 12 23:59:59 2020
1033 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 09:14:47.97 ID:oJspCYOK.net] イヤミでは、なく止したら? <Ruby
1034 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 09:32:16.73 ID:cdtRNbgQ.net] Swiss File Knife
1035 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 09:39:33.54 ID:dCe/n24a.net] ・
1036 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 14:59:12.49 ID:uGqrrAzw.net] >>983 @echo off set src=Plugins\update.txt set ini=Soft.ini for /f "usebackq tokens=1* delims=:" %%G in (`findstr /c:"Update time" "%src%"`) do set "VER_UT=%%H" for /f "usebackq tokens=1* delims==" %%G in (`findstr /c:"LastUpdate" "%ini%"`) do set "VER_IT=%%H" REM 比較するならここで処理 REM echo "%VER_UT%" "%VER_IT%" ren "%ini%" "%ini%.bak" && copy nul "%ini%" || (echo ERROR &pause &exit /b) for /f "usebackq tokens=1* delims==" %%G in ("%ini%.bak") do ( if "%%G"=="LastCheck " ( >>"%ini%" echo %%G=%VER_UT% ) else ( if "%%G"=="LastUpdate " ( >>"%ini%" echo %%G=%VER_UT% ) else ( >>"%ini%" echo %%G=%%H ) ) ) REM 空行消したくなければ findstrで読んで行番号を表示させる
1037 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 21:06:33 ID:II+YlR7/.net] ・
1038 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 22:02:35.58 ID:TmzvbeJo.net] >>995 ウンコみたいにダサいコードをよく晒せるな。 生きてて楽しい?
1039 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 22:14:12.37 ID:B6QaDwta.net] 未来予知乙 生きてる価値もないなw
1040 名前:デフォルトの名無しさん [2020/08/14(金) 22:43:27 ID:9FGl+Ien.net] 低能Ruby厨か
1041 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 23:06:43.67 ID:TmzvbeJo.net] リダイレクトカードオープン! >>991 から >>995 へのアンカーは >>985 へリダイレクトされる! が、Ruby爺は人格障害者だった! 精神的ダメージを受けていない! Ruby爺がVZ爺を召喚しようとしている! が、自分自身だったので召喚できない! Ruby爺がダサいコードを唱え始めた! 似非プログラマーは発狂した! 歴戦のプログラマーは何も感じていない! 歴戦のプログラマーの攻撃! Ruby爺は5のダメージ! 歴戦のプログラマーはRuby爺をやっつけた! 経験値を0exp、ゴールドを0G 手に入れた! 「何だよ無職ニートの爺かよ…」と歴戦のプログラマーは思った。
1042 名前:デフォルトの名無しさん [2020/08/14(金) 23:10:45 ID:SCMnTycc.net] Windows には、ini ファイルを読み書きできる、コマンド・アプリは無いの?
1043 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 23:35:08.04 ID:LY+T9Pmp.net] EDLIN
1044 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 00:03:00.44 ID:fUIncIgN.net] ・
1045 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 01:45:30.34 ID:t8slxubu.net] 次スレは?
1046 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 02:14:16.82 ID:RWxrHj8y.net] https://www.vector.co.jp/vpack/filearea/dos/util/bat/
1047 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 06:59:18.06 ID:R7NunwzB.net] 質問いいでしょうか
1048 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 632日 16時間 7分 11秒
1049 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています