1 名前:デフォルトの名無しさん mailto:sageteoff [2017/03/11(土) 13:47:11.66 ID:2LSSeyH1.net] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net echo.2ch.net/test/read.cgi/tech/1424858999/ それ以前の過去スレ %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/
2 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 14:16:25.14 ID:tWxSSf/m.net] 2GET
3 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 17:24:01.08 ID:aIgw+L4R.net] そろそろ次スレ立てた方がいいと思う
4 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 19:08:44.39 ID:ayh8mOJp.net] タヒ
5 名前:デフォルトの名無しさん mailto:sage [2017/03/12(日) 22:04:13.40 ID:LKmH3irJ.net] 達人の方々!お教えください set文による文字列の置き換えで =を置き換えたいのですが どのように記述すればよいのでしょうか?
6 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 02:51:46.65 ID:ieWeiZc+.net] >>5 setの文字列置換では無理 =の個数が決まっているのならforでderims== 不特定なら一文字ずつ=かどうかを判定し=なら置換したい文字列を付け足し テストしてないから不備があるかもだけど以下みたいな感じで出来ると思う :ReplaceEqual if "%~1"=="" (echo ERROR&exit /b) set "str=%~1" set output= :CheckEqual if not defined str exit /b pause if "%str:~0,1%"=="=" ( set "output=%output%置換後文字列" set "str=%str:~1%" goto :CheckEqual ) set "output=%output%%str:~0,1%" set "str=%str:~1%" goto :CheckEqual
7 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 02:56:02.96 ID:ieWeiZc+.net] 済まん pause テストするつもりで入れてたのを消すの忘れてた まあそのままテストしてみて
8 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 03:26:40.42 ID:Kv5ZfyaF.net] :ReplaceEqual set "str=%~1" set output= :CheckEqual if "%str:~0,1%"=="=" ( set "output=%output%置換後文字列" set "str=%str:~1%" ) else ( set "output=%output%%str:~0,1%" set "str=%str:~1%" ) if defined str goto :CheckEqual exit /b
9 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 07:40:38.20 ID:KSFKLeET.net] >>6-8 ありがとうございます 色々試して見ます
10 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 22:53:05.48 ID:UotY540z.net] >>8 と同じだけど、もう少し使いやすいI/Fにしたもの @echo off rem 文字列中には、",%(1つのみ) を入れないこと set "var==abc=def=!#$&'()=^~|-+*;:{}<>,./?\_%%" call :replace var "=" "=" echo "%var%" rem savety stopper goto :eof :replace setlocal set i=0 set s= :replace_loop call set "c=%%%1:~%i%,1%%" if not defined c (endlocal&set "%1=%s%"&goto :eof) if "%c%" equ "%~2" (set "s=%s%%~3") else (set "s=%s%%c%") set /a i+=1 goto :replace_loop
11 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 08:22:32.42 ID:Ekd3hMdD.net] cmderいいな この手のツールで表示が崩れたりせずまともに動くやつ見るの初めてだ
12 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 19:39:27.45 ID:sbz59NLr.net] for /r %%i in (*.jpg) のようなコマンドで取得した絶対パスをカレントフォルダとの相対パスに変換するにはどうするのが一番ですか? 現在はsetコマンドの置換機能でカレントフォルダの部分のパスを消しているんですがパスに変な文字列が入っていると誤作動を起こしそうで少し不安です。 もっとスマートなやり方はありますか?
13 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 01:00:29.70 ID:DixFGYK0.net] >パスに変な文字列が入っていると どのみち%が入っているとバッチだと詰む。やれなくないけど物凄く面倒 バッチでは完全な文字列操作は無理だと割り切った方がいい PowerShell使えば? ttps://www.google.co.jp/search?&q=powershell+%E7%9B%B8%E5%AF%BE%E3%83%91%E3%82%B9+%E5%A4%89%E6%8F%9B
14 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 01:47:18.14 ID:9KCSEqzj.net] >>13 分かりました、何か別の方法を考えます
15 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 02:25:05.07 ID:iKA3O6Cf.net] >>14 実際の有効なパスが対象なんだから 問題となるのは上に出てきたequalを含んだフォルダがある場合だけだろう setlocal echo %cd%>tmpfile for %%i in (tmpfile) do set /a size=%%~zi-2 del tmpfile if %size% neq 3 set /a size+=1 for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%size%%%" call echo ".\%%p%%" ) endlocal
16 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 02:32:32.21 ID:iKA3O6Cf.net] 肝心なのは、文字列操作、表示まで扱う場合は 文字列を必ず""で括るようにすること & % ^ 等を含んでると括ってないとおかしくなる
17 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 04:08:08.29 ID:gadu0oc0.net] chcp 437
18 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 11:46:49.75 ID:iKA3O6Cf.net] >>17 ファイルサイズじゃ根本的にダメだったね (それにecho %cd%も""で括ってなきゃいけなかったし) call :length "%cd%" n for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%n%%%" call echo ".\%%p%%" ) goto :eof :length setlocal set s=%1 set n=0 :length_1 call set "c=%%s:~%n%,1%%" if defined c set /a n+=1&goto :length_1 if %n% neq 5 set /a n+=1 endlocal&set /a %2=%n%-2 goto :eof
19 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 12:49:57.48 ID:iKA3O6Cf.net] 訂正 call :length cd n for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%n%%%" call echo "%%p%%" ) goto :eof :length setlocal set n=0 :length_1 call set "c=%%%1:~%n%,1%%" if defined c set /a n+=1&goto :length_1 if %n% neq 3 set /a n+=1 endlocal&set /a %2=%n% goto :eof
20 名前:12 mailto:sage [2017/03/16(木) 18:53:00.18 ID:9KCSEqzj.net] >>15 ありがとうございます 文字列を置換することばかり考えていたのでカレントフォルダ分の文字数を削るという発想に行き着きませんでした これで何とかなりそうな気がします
21 名前:デフォルトの名無しさん [2017/03/17(金) 21:12:58.50 ID:V4hZYsin.net] どなたかお詳しい方、ご教示ください windows7を起動後、自動で特定のアカウントパスワード入力後にログインし、 ログイン後、デスクトップの特定座標を自動でクリックするという操作を行わせたいです このような処理はbatファイルで可能でしょうか? win7初期状態にインストールされているものであれば他のものを使用してもよいのですが。 キーワードだけでも結構ですので、お助けいただければ幸いです
22 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:46:29.02 ID:93Jxn9OB.net] 胡散臭すぎるだろ・・・
23 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 22:18:36.30 ID:Pk7DeofX.net] ログインとはWindows7の登録ユーザーってことか? それともWebブラウザを起動してどっかのサイトにログインするってことか? あと何故マウスクリックなのか? デスクトップに表示してるアイコンなら別に直接起動できるだろうに
24 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 09:01:42.64 ID:KPOks79l.net] >>21 無理です
25 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 15:14:23.81 ID:cDGLzqpd.net] start https://www.google.co.jp/search?q=windows7+自動ログイン
26 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:14:02.44 ID:QMGJB+5Y.net] だいぶ使い道ないけど、DIRって複数フォルダの内容を1回で表示できるんだね。 DIR C:\tmp C:\tmp2
27 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 13:17:40.14 ID:jo55dHfH.net] for文が同一フォルダに自分で出力したファイルを 一つだけ拾っちゃうんだけど、何か対策はありませんか? for %%I in (*.jpg) do copy %%I %%~dpI_%%~nxI って感じに処理すると 1.jpg 2.jpg → _1.jpg _2.jpg __1.jpg となっちゃう…
28 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 13:52:45.87 ID:OsTTofqK.net] for /f "delims=" %%a in ('dir /a-d /b *.jpg') do
29 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 20:50:35.80 ID:8s6m96Ov.net] なるほどDIRか… ありがとうございました。
30 名前:デフォルトの名無しさん [2017/03/28(火) 18:35:13.10 ID:oEoZ8De2.net] バッチファイルで echo %* とすると引数がすべて表示されるけど %0=自分自身だけ無いのはなんで? *で0だけハブられるなんて可
31 名前:」想…… [] [ここ壊れてます]
32 名前:デフォルトの名無しさん mailto:sage [2017/03/28(火) 18:52:24.94 ID:IKXgMhqU.net] 少し考えれば分かりそうなものだが %cmdcmdline%
33 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 01:42:37.50 ID:gGp/SYAm.net] なんか真似しそう(笑)
34 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 06:06:20.82 ID:awE7Wvau.net] バッチ書くのにオススメのエディタあったら教えて 最近目がめっきり弱くなって来たので色分け表示とかの視認性上がるものや 便利そうな機能があるものを知りたい 頻繁に使うわけじゃないからこそ探すの面倒で先人の知識をお借りしたい
35 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 07:06:14.38 ID:pL1jzkCs.net] >>33 VisualBatは? 文字に色もつくしいろいろ設定できるよ batをexe形式にすることもできる
36 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 07:12:25.04 ID:5ummjK72.net] サクラエディタ
37 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 07:33:25.19 ID:uEU30p4H.net] マジレスすると目が悪いならでかいモニタ買ってフォントサイズでかくするのが一番良い PowerShell、Ruby, PythonとかならVSCodeでブレークポイント張ったり変数のインスペクトしたりできるけど その手の支援機能が全く期待できないBatじゃどれ使っても同じだろう 手に馴染んだエディタ使えばいいしないならフリーのどれか一つ覚えればいい キーワードの色分け程度なら大抵用意されてるし VisualBatはちょくちょく見かけるけどそれ専用の環境を覚えるくらなら普通のエディタ使ったほうがいい気がする 個人的にはBatから別の言語のコード書いて呼び出す事が多いし 自作マクロになるけど ↓みたいなコードを一つのファイルに書いて##!!に挟まれたカーソル位置のコードを切り出して実行する機能が 言語の学習やちょっとしたテストに便利で気に入っているのでエディタマクロ覚えて作ってみるのお勧め ##!! echo test echo hello ##!! for test for %i in (a,b,c) do echo %i ##!! calc test set a=1 set /a a+=2 echo %a%
38 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 07:56:40.92 ID:wDpIbVKg.net] 中身のない長文要らんわ
39 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 22:35:33.81 ID:TkzGFBjq.net] >>33 黒背景に白地の文字が視認性あがるよ フォントはゴシックで文字サイズも大きくする 俺の使ってるのは一般的にはオススメではないのでどうかと思うが (New)QXエディタ(一応シェアウェアだが未登録でも機能制限も期間制限も無い)
40 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 22:53:09.08 ID:jFb9lqNm.net] 真っ黒背景に真っ白文字は目がズキズキする
41 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 22:58:56.52 ID:TkzGFBjq.net] >>39 確かに、目のいい人にとってはそうかもしれないけどね コマンドプロンプト画面がエディタ画面だと思ってもらえれば想像できるよね
42 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 23:14:57.75 ID:rmwiW03F.net] color 0f は目に痛い
43 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 23:18:55.00 ID:TkzGFBjq.net] 目のいい人がコメントしたって意味ないだろ 老眼やかすみ目で文字が読みにくくなったらわかるよ 特に、カンマとピリオドの区別が付かないとストレス溜まるぜ
44 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 23:37:00.86 ID:mc8PKhXW.net] >>33 サクラエディタ入れて IPAゴシックフォントにする
45 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 00:06:37.41 ID:m/ZONOLH.net] 背景は薄い黄緑色にしてる 目が疲れない
46 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 00:16:41.83 ID:Q0uaZ4Jg.net] そういえば昔のホスト端末とかって黒背景に緑字が多かったよね? あれってなんでだろ?
47 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 02:35:10.99 ID:G7XsiAet.net] >>45 グリーンディスプレイがあったからじゃね?
48 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 02:45:05.78 ID:ti2ez7YV.net] 緑やオレンジの蛍光体の方がTVの白蛍光体より刺激が少ないから採用されていたらしい
49 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 04:37:33.60 ID:RiJvnB3V.net] >>40 適当な画像エディタのスポイトで抽出してみればわかるけど コマンドプロンプトは黒と白じゃなくて黒とグレー 理由は目への配慮 DQも同じ
50 名前:33 mailto:sage [2017/04/04(火) 05:42:06.14 ID:ldgn2Vfw.net] 皆様たくさんのレスありがとうございます VisualBat試してみました デバッガとしては便利そうですがTab文字打てないのでエディタとしてはまだちょっと使えなさそうです for や if の()で自動インデントとかしてくれるようになると便利かも 今後の更新に期待します 他、挙げて頂いたアドバイスも順次時間が取れ次第試して行きたいと思っております 次はサクラエディタを試用する予定。他候補にMery、QX コマンドプロンプトは color 07 不透明度80 で使っております かすみ目、乱視、老眼、ド近眼、何れも酷いです 他に思い付いたアドバイス等ございましたらよろしくお願いします
51 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 06:03:57.35 ID:o7weIbXl.net] >>43 フォントはVLゴシックのほうがいいと思う
52 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 12:05:28.05 ID:h1EI1nbQ.net] gPadは色弄りやすい
53 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 12:56:18.88 ID:CQgziqhI.net] >>50 あのフォントゼロに斜線が入ってるから使ってる
54 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 00:03:13.02 ID:jDUjKmAY.net] >>48 >DQも同じ ドラクエ?
55 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:14:16.29 ID:3YaJnUcz.net] ms製wgetなんてあったんだな 何故か異様に遅いが bitsadmin /Transfer htmlget https://www.google.co.jp/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png c:\logo.png
56 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:15:28.84 ID:3YaJnUcz.net] フォントはMyricaがClearTypeと相性がいい
57 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:52:42.60 ID:RJCKk6tM.net] VLゴシックは行間空き過ぎ 同じ行数が表示出来るようフォントサイズで調整した場合 VLゴシックのフォントサイズ10に対しIPAゴシック12、MSゴシック13 やたらと空行入れたがる脳みそスカスカの空行厨が好みそうなフォント 自分にはIPAゴシックよりVLが良い点が見当たらないので >>50 さん、どの辺が良いのか具体的に教えていただけると助かります
58 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:14:54.54 ID:xnWSKOe7.net] >>54 これは知らんかった バッチファイルで夜間にダウンロードとかに便利だな
59 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 18:57:28.10 ID:LC0ZcHdg.net] >>54 動かなかったんで/helpしてみたら、WindowsXPのbitsadminには/Transfarが無かった(version 1.0 [ 5.1.2600.0 ]) 調べてみたら、 Windows XP Service Pack 2 サポート ツール https://www.microsoft.com/ja-jp/download/details.aspx?id=18546 をインストールすればいいことが判った version 2.0 [ 6.6.2600.2180 ]
60 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 11:47:08.97 ID:z+t/KLMw.net] Myrica良いね |が破線なのと\→\バックスラッシュに違和感あるけど慣れればこっちの方が見分け楽そう
61 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 20:07:11.55 ID:bvJ+shyZ.net] set test=%1 for /f "delims=" %%f in (%test%) do ( E:\test\test.bat %%f ) 上記のfor処理にテキストのファイルパスを一つずつ読み込ませて専用batで処理した後に 全部終わったらシャットダウン処理をしたいのですが ループ処理に割り込ませる方法って何かありますか?
62 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 21:42:41.83 ID:ZiByT+J4.net] 質問の意味が不明瞭 全部終わった後でいいならforの後にshutdown書けばいいんでないの? for中に割り込ませたいのは何故?
63 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:02:51.00 ID:bvJ+shyZ.net] set test=%1 for /f "delims=" %%f in (%test%) do ( E:\test\test.bat %%f ) shutdown /S /T 30 単純にこれでうまくいかなかったので割り込ませる必要があるのかと思い質問しましたが やっぱりそんなわけないですよね・・・ 単純なミスをしてる可能性が高そうなのでもう一回見直してみます
64 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:31:07.73 ID:U8R3p0c1.net] callしてないからtest.batから帰ってこないだけでは
65 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:39:54.03 ID:bvJ+shyZ.net] あちゃーほんとだ 普通に動いてたから気づかなかった・・・ アホですね ちょっと修正してテストしてみます 指摘ありがとう
66 名前:デフォルトの名無しさん [2017/04/15(土) 01:17:56.44 ID:yuPX0yl1.net] ソフトを起動した際に出るライセンスキーを入力する画面に値を自動でいれたいです。 batで可能でしょうか?
67 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 08:13:42.82 ID:eG98vJ7n.net] ahk
68 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 23:02:38.65 ID:a3PF4w5O.net] batでgrep検索をしようと思ってるんだけど、 検索結果にファイルのフルパスを出力する方法を教えてください>< 現状だとファイル名+行の内容しか出ない・・・
69 名前:デフォルトの名無しさん [2017/04/27(木) 06:44:05.61 ID:Ek2Yalzm.net] 複数のファイルがあり、ぞれぞれ中身が fileID: aaaa within( ); や fileID: akf within( ); などfileID: ~ within();は固定です。 各ファイルのaaaaやakfを読み込みの際に変数に取り込みたいのですがどのように書けばいいでしょうか? fileID: aaaa within(はファイルの一行目なので set /p fl=< %inputFile% でとれました。
70 名前:デフォルトの名無しさん mailto:sage [2017/04/27(木) 07:31:26.21 ID:LF40VtKG.net] テストしてないけどこんな感じ。必要ならusebackqとかも。aaaaに&とか入るならsetでクオートする必要がある for /f "tokens=2* delims= " %%a in (%inputFile%) do ( set ID=%%b goto :NEXT ) :NEXT または set /p fl=< %inputFile% for /f "tokens=2* delims= " %%a in (%fl%) do set ID=%%b または for /f "tokens=2* delims= " %%a in ('findstr /b /c:"fileID" "%inputFile%"') do set ID=%%b
71 名前:デフォルトの名無しさん [2017/04/29(土) 21:00:05.56 ID:GvSnly4L.net] >>69 "within("しか取れませんでした。
72 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 23:45:46.56 ID:AyX6Tpbc.net] 書いたコマンドとテストした対象ファイルの1行目をコピペで貼ってみ
73 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 16:43:52.50 ID:PScyAxKX.net] 助けて下さい! 毎月第二木曜日の16:00になったら Aフォルダに入っているgファイルにBフォルダに入っているgファイルを上書きする batファイルを作って下さい よろしくお願いします
74 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 17:29:08.98 ID:bjRIYrg3.net] >>72 ファイル上書きのBAT(c:\xxx.bat)を作成してタスク登録する schtasks /create /sc monthly /mo second /d thu /st 16:00:00 /tn title /tr "c:\xxx/bat" /ru username /rp userpassword
75 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 18:58:44.41 ID:PScyAxKX.net] >>73 ありがとうございます!
76 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 00:01:39.58 ID:1meaH6LX.net] set txt="C:\scr\a.txt" for /f "delims=, usebackq tokens=1,2,3,4,5,6,7,8" %%i in (%txt%) do ( set /a X="(%%j-%%i)+(%%l-%%k)+(%%n-%%m)+(%%p-%%o)" ) echo %X% forを使った計算について質問ですがa.txtから数値を抜き出し計算したいのですが最後の二つが空の場合があり この場合は%%pと%%oですがその場合はエラーになって強制終了してしまいます gotoを使う方法は思いついたのですが他に空だった場合にゼロを代入するなどは可能でしょうか?
77 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 08:46:27.33 ID:trqCrhEU.net] set txt="C:\scr\a.txt" for /f "usebackq tokens=1,2,3,4,5,6,7,8 delims=, " %%i in (%txt%) do ( set /a X=%%j-%%i+%%l-%%k+%%n-%%m, po=%%p-%%o ) set /a XX=X+po echo %XX%
78 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 11:05:40.92 ID:lLM9Jqdl.net] echo ^ とすると more? と出る ??
79 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 12:02:37.54 ID:+kEWkBL6.net] >>76 空の場合に1が代入されてエラーを回避できました サンクス
80 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 17:52:47.97 ID:ya28xWZT.net] 特定のフォルダ内のテキストファイルを処理するバッチを作りましたが @echo off for /f "usebackq delims=" %%i in (`dir /B /S "E:\text_sc\*.txt"`) do ( echo %%i call E:\work\syori.bat "%%i" ) syori.batで処理したテキストを忘れないようにリスト化(syorizumi_list.txt) aaa bbb ccc のように処理したテキストの名前だけ縦に追記 次回から新しいテキストファイルが同じフォルダに出来た場合にsyorizumi_list.txtの 処理済みのテキストを除外して処理したいのですが コマンドのアドバイスを頂けないでしょうか
81 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 19:38:36.49 ID:HiKVEJh7.net] >>79 もし、その入力ファイルをその後弄らないのならファイル属性を弄るのがいい 例えば、アーカイブ属性を削るとか読み取り専用属性にするとか そうすれば、forの中のdirに/aで分別できる それが無理な場合は、こんなかんじでファイルに登録されているかどうかチェックするとかかな findstr /x "%%~ni" syorizumi_list.txt >nul if errorlenel 1 ( echo %%i call E:\work\syori.bat "%%i" ) )
82 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:01:19.56 ID:ya28xWZT.net] >>80 レスありがとうございます 読み取り属性の方は最終手段としてとりあえず書かれたコマンドを追記してテストしていますが エラーで強制終了してしまいます・・・ ヒントは頂けたのでちょっと考えてみます
83 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:32:14.27 ID:8Dg0HTHO.net] 処理済みファイルを下位ファルダに移動させるとかじゃダメなの? それが1番楽だと思うけど
84 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 22:02:54.16 ID:ya28xWZT.net] ダメではないですし意地になってるだけです・・・ すいません どうしようもなければそうしおうと思います
85 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 22:41:00.81 ID:HiKVEJh7.net] >>81 ただのtypoだから(errorlevel) あと処理済ファイルの指定はフルパスにしないとダメかも
86 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 22:45:30.06 ID:HiKVEJh7.net] あと、移動させるなら下位フォルダはダメだよ dir /sではそれも対象だから
87 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:51:05.34 ID:ya28xWZT.net] >>84 修正したら動きました! ありがとうございます ただsyorizumi_list.txtに aaa bbb ccc とあったらaaaしか除外してくれませんね・・・ もう少し調べてみます
88 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 02:30:44.06 ID:HrYyDnOr.net] >>86 まあこっちが悪いっちゃ悪いんだけど、これくらい修正して使って欲しかった /c:"%%~ni"
89 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 08:10:06.10 ID:N++czmo3.net] >>87 眠すぎたのと集中力が散漫で気づいてないだけでした・・・ すいません それと指摘の通り/c:に変えたら期待通りの動作になりました サンクス!
90 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 21:37:37.96 ID:HrYyDnOr.net] >>88 その言い方に嫌な感じがするんだがちゃんと引数の意味を調べて使ってるよね /x /c:"%%~ni"としてるんなら、変な勘ぐりスマン
91 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 22:35:16.21 ID:N++czmo3.net] >>89 /x /c:"%%~ni"で問題なく動作しています 細かいところまでありがとう
92 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 14:12:41.59 ID:Q9T2A2Wt.net] こんなろくに理解せずそのまんまコピペして使ってるとトラップに引っかかるぞ
93 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 22:28:16.59 ID:b+LuBt/G.net] 下位フォルダに移動することも検討してるなんてレスから /sが必要だとも思えんよね
94 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 22:30:42.85 ID:b+LuBt/G.net] もし/sが意図通りだったら aaa.txt aaa\aaa.txt なんて状況どうするんだって話だし
95 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 07:30:18.71 ID:/NUGeMQI.net] >>89 > その言い方に嫌な感じがするんだがちゃんと引数の意味を調べて使ってるよね 同意 88の1行目で奴の人物像がすべて分かる
96 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 16:05:36.92 ID:OOQCykcT.net] 引数 %1 %2 ,, は%9 までだが shiftで取り出せば%10以上でも取り出せた
97 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 12:35:49.64 ID:j04OpPTD.net] Cドラのdown配下のmp4とaviを DドラTozakaruzoSaikonkaraに集約してコピーしたいときはどうするの? XCOPY "C:\down\*.mp4” "D:\TozakaruzoSaikonkara\" /d /e /h /r /y XCOPY "C:\down\*.avi" "D:TozakaruzoSaikonkara\" /d /e /h /r /y ワイルドカード使いたいけど、eroやmoroのところが難しい for文の記述の方がいいなど、よろしくお願いします。 C:/ ├down/ │ └ ero/ │ └ 111.mp4 │ └ moro/ │ └ xx2.avi │ └ zzz.mp4 │ └xxx.avi D:/ ├TozakaruzoSaikonkara/ │ └ 111.mp4 │ └ xx2.avi │ └ zzz.mp4 │ └ xxx.avi
98 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 13:13:57.77 ID:6QOS5lbl.net] robocopy /?
99 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 15:41:43.67 ID:y+UEOWCj.net] >>96 cd /d c:\down cd d:TozakaruzoSaikonkara for /r %%i in (*.avi *mp4) do copy /y "%%~fi" d:
100 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 15:46:23.72 ID:y+UEOWCj.net] cd d:\TozakaruzoSaikonkara の方がいいか