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/
157 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 22:00:01.63 ID:dDtGuicR.net] ! とか ^ があると setlocalの前に変数代入した方が楽だな
158 名前:デフォルトの名無しさん mailto:sage [2019/03/20(水) 22:34:42.36 ID:/eguYGP5.net] 一番厄介なのって [ ] だっけ?
159 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 01:32:50.66 ID:3Vd/nBOR.net] 個人的には全角
160 名前:スペースと() [] [ここ壊れてます]
161 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 21:56:31.90 ID:HPyHK69o.net] day=off だと echo されない
162 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 23:03:18.28 ID:HPyHK69o.net] 遅延モードでのエスケープの動作が面白い setlocal enabledelayedexpansion set "a=^x ^^ ^!" set "b=^x ^^ ^y" set "c=^x ^^ ^y" ! echo a=!a! echo b=!b! echo c=!c! a=x ^ ! b=^x ^^ ^y c=x ^ y
163 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 22:17:03.83 ID:dRPi9Fbo.net] コマンドプロンプトで以下のpowershellコマンドを実行すると曜日が英語で表示されるのですが、 ここで表示された"Wednesday"を呼び出し元であるコマンドプロンプト側の変数に取得するのは難しいでしょうか? 曜日の判定に使いたいのです。 C:\>powershell "(get-date).DayOfWeek" Wednesday
164 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 22:22:48.75 ID:kh6Z72O0.net] >>160 for /f "delims=" %%i in ('powershell "(get-date).DayOfWeek"') do set "hoge=%%i"
165 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 23:46:13.28 ID:dRPi9Fbo.net] >>161 ありがとうございます!それでバッチリでした。 ってかレスはやっ!( ̄□ ̄;)
166 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 14:41:43.82 ID:SVkPhkuc.net] 読み取り専用属性付加と解除についてお願いします ATTRIB +R hoge.txt この場合hoge.txtをバッチファイルにドロップしたときhoge.txtの属性が読み取り専用になりますが ATTRIB +R *.txt とすると一つのファイルをドロップしただけでディレクトリ内の全てのテキストファイルの属性が変わってしまいます バッチファイルへドロップしたファイルのみ属性を変えたいのですがこういうことは可能でしょうか?
167 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 15:11:44.94 ID:SVkPhkuc.net] >>163 です バッチファイルにファイル名を指定してしまうと同一名のファイルしか処理できませんが ファイル名が異なっていてもドロップしたファイルのみ属性変更したいのです
168 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 15:30:16.10 ID:Tk94P2Iw.net] >>163 "*.txt "が邪魔
169 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 15:59:23.64 ID:SVkPhkuc.net] >>165 ATTRIB +R これだけでいいのでしょうか 試してみましたが一つのファイルをバッチファイルへドロップすると ディレクトリ内の全てのファイルが属性変更されてしまいます
170 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 16:34:46.90 ID:HAjihGMm.net] >>166 ATTRIB +R %1 引数のファイルだけ属性を変える 引数が無い場合は全てのファイルになるので ガードは付けた方が良いと思う
171 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 17:06:43.84 ID:SVkPhkuc.net] >>167 %1 とすることでドロップした一つのファイルが読み取り属性変更できるようになりました 二つとか三つとか複数ファイルはできないのですよね 皆さんありがとうございました
172 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 17:54:55.66 ID:DeBFB2/b.net] ATTRIB +R %* とすると複数ファイル可
173 名前:デフォルトの名無しさん [2019/04/17(水) 18:03:53.01 ID:mAjziF7r.net] バッチファイルの図形プログラミング作ったら広告収入入ると思いますか?
174 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 18:18:21.55 ID:QABBLuNd.net] 俺のところじゃ>>169 はエラーになる for %%i in (%*) do attrib +r %%i まあファイル名によってはこれもダメだけど
175 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 19:24:10.99 ID:SVkPhkuc.net] >>169 >>171 みなさんありがとうございます 助かりました
176 名前:デフォルトの名無しさん mailto:sage [2019/04/17(水) 21:07:05.52 ID:3cAVwUGz.net] 複数ファイルドロップするなら shift でループが簡単だと思うけど何か落とし穴ある?
177 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 19:59:48.99 ID:pUSpmyse.net] ファイルドロップで落とし穴があるとしたら >>45 みたいな引数の時 >>48 を参考にすると @echo off set "a=%cmdcmdline:"=*%" set "a=%a:~0,-1%" & set "e=" set "c=" & for /f "tokens=2* delims=*" %%i in ("%a%") do set "c=%%j" :x set "a=" & for /f "tokens=*" %%i in ("%c%") do set "a=%%i" if "%a:~0,1%"=="*" (set "d=*") else set "d= " set "b=" & set "c=" for /f "tokens=1* delims=%d%" %%i in ("%a%") do set "b=%%i" & set "c=%%j" if defined b set e=%e% "%b%" & goto x for %%i in (%e%) do attrib +r %%i でもこれファイルドロップでしか使えない
178 名前:デフォルトの名無しさん [2019/04/19(金) 16:41:41.89 ID:nzBF9sby.net] batのコマンドのタイトルバーに 「管理者: 」 の表示を消すこと出来ないのでしょうか?
179 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 17:41:11.03 ID:HG96JCXu.net] muiファイルいじるしかなかったような
180 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 18:58:50.77 ID:FmrBk+Vp.net] スレチと怒られそうだが --- change_wnd_title.uws ------ DEF_DLL SetWindowTextA(HWND, STRING):BOOL:user32.DLL DIM old_title = PARAM_STR[0] DIM new_title = PARAM_STR[1] DIM idwnd = GETID(old_title) IFB -1<idwnd THEN SetWindowTextA(IDTOHND(idwnd), new_title) ENDIF --------- C:\UWSC\UWSC.exe C:\TEST\change_wnd_title.uws "管理者: test" "ABC" を管理者権限で実行 「管理者:」 と「test」 の間にスペースが2つある点に注意 べつにWin32apiが使えればほかのスクリプトでもいいが すでに配布が終了している(?)UWSCをすすめるのは とてもにコンパクトで気軽に試しやすいため 以下のレスにあるDL先は公式リンク 使うのはFree版でよい egg.2ch.net/test/read.cgi/software/1533818531/3
181 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:14:57.50 ID:5yrPogsy.net] >>175 例えば d:\hoge\a.bat を実行するなら ショートカットの新規作成でコマンドは cmd /c start "ABC" /d "d:\hoge" a.bat ショートカットのプロパティで 実行時の大きさは「最小化」 詳細設定で「管理者として実行」 このショートカットを実行すると a.bat が管理者として実行されて タイトルは ABC のみになる
182 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 21:49:09.78 ID:5yrPogsy.net] >>178 念のため書いておくが バッチの中で title xxx と書くと「管理者:xxx」 となるので台無し バッチの title コマンドは消せ それが出来ないなら俺は知らん
183 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 23:47:56.76 ID:UTkV4PFm.net] あのさ もう設計書はあるからバッチ作ってって言われて設計書見たんだが 「%0\..\xxx\yyy.batをコールする」とか書かれてて腰折れそうなんだけど…
184 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:03:36.64 ID:oEi+Bse9.net] やりたい事が書いてあるかどうかだな 設計書作る手間で自分でかけとも思うけど 外注なら設計書から作りましょうねと諭して工数確保だな
185 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 00:08:13.21 ID:vpsjY4OY.net] >>181 まあやりたい事分かるからこっちで直して これでいいですよね?って聞くつもりだけど 細かく書いといて間違えてるのやめてほしい…
186 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 03:49:52.33 ID:C+CxU9Uj.net] >>175 隠しておかないと、悪いことしてるのがばれちゃうもんな
187 名前:179 mailto:sage [2019/04/20(土) 04:50:04.97 ID:HO8cTApa.net] たぶん>>121 の奴だろ 胡散臭い
188 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 00:17:28.92 ID:Aqd0ZKZB.net] forfilesは遅いこと フォルダのファイル数が多いと極端に遅くなる
189 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 20:18:12.49 ID:SEUESNkj.net] >>174 exit で終了しないと不味いな…
190 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 09:53:38.49 ID:3q/iti6Z.net] バッチとは違うけど、Microsoftさまの新しいターミナルアプリ「Windows Terminal」 https://forest.watch.impress.co.jp/docs/news/1183011.html 期待しても良いのかしら
191 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 22:44:07.08 ID:6yW2addd.net] >>187 windows10のみだと俺は使えないや [] [ここ壊れてます]
193 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 22:45:41.01 ID:o7I87B0d.net] >>188 そりゃMacやLinuxでも使えるようにする性格のアプリではないだろ
194 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 23:18:47.67 ID:6yW2addd.net] >>189 どういう意味なのかな? 俺が読んだかぎりではwindows10のみと判断したんだが
195 名前:デフォルトの名無しさん mailto:sage [2019/05/08(水) 23:59:34.57 ID:PAJNmCOy.net] >>190 MacやLinuxで使えないから嫌だってお前は言ってるんだよ
196 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 00:09:50.10 ID:Q5GOiLDw.net] build 10.0.18362.0以上でVS2017必要みたいね Win8とかじゃ使えない
197 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 00:35:06.30 ID:e/QFUb7b.net] win7/8.1は切捨てか さすがMS
198 名前:デフォルトの名無しさん mailto:sage [2019/05/09(木) 00:47:39.20 ID:W7EsCFlC.net] >>193 サポート終了って言ってるんだから当たり前じゃね?
199 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 02:08:44.94 ID:5JVQU2Kx.net] スレチかもなのですが、「コアを吐く」ってどういう意味なのでしょうか?
200 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 02:12:53.15 ID:ChT5ZnKi.net] コアダンプのことじゃね
201 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 00:27:10.87 ID:p20+5ZYI.net] Win10で、.(ドット)から始まる4文字以上のフォルダを再帰的に削除したいのですがうまくいきません for /d /r %%d in (.????*) do rmdir /s /q "%%d" フォルダ名をスペースおきに書くと削除できますがワイルドカードを使って処理できないものでしょうか
202 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 11:10:45.58 ID:TZwQ5fCi.net] for /f %%d in ('dir /s /b ^| findstr \\\.....') do rmdir /s /q "%%d" とか?
203 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 11:21:46.43 ID:TZwQ5fCi.net] >>198 dir /s /b /ad だった
204 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 11:40:23.60 ID:C4jenAHt.net] >>197 for /d /r %%i in (.*) do set "a=%%~fi" & call :x "%%a%%" pause & goto :eof :x set "b=%~nx1" if not "%b:~4,1%"=="" rd /s /q %1
205 名前:197 mailto:sage [2019/05/19(日) 12:35:02.55 ID:p20+5ZYI.net] >>198-199 >>200 ありがとうございます! rmdirをechoに置き換えて確認してみましたところ、>>200 様ではフォルダ名を取得できませんでした >>198-199 様で対象にしたいフォルダ名を取得できましたのでこちらを使わせていただきます ありがとうございました
206 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 13:00:03.54 ID:C4jenAHt.net] >>201 なにを言ってるのか意味不明だな? >>200 の rd を echo rd に変えたのなら問題ないだろ >>198 を使うなら /f "delims=" にしろよ? あと、>>198 だと \.12\abc とかも消えるぞ
207 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 13:23:52.91 ID:C4jenAHt.net] 分かった 隠し属性かよ
208 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 07:05:59.13 ID:/nt8UTBS.net] for /f "delims=" %%i in ('dir/adh/s/b .*') do ( set "a=%%~nxi" & call set "a=%%a:~4,1%%" if defined a if exist "%%i" rd/s/q "%%i")
209 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 10:45:56.66 ID:nyCVecKy.net] 7-Zipスレからこちらに誘導されてきました バッチファイルを実行して 指定したフォルダを7z圧縮し別の指定した場所へ保存する方法教えてください
210 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 10:55:25.50 ID:QHGhwB6i.net] >>205 7-zipのコマンドラインオプションみましたか?
211 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 11:03:44.74 ID:nyCVecKy.net] >>206 見ていません
212 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 11:10:19.45 ID:nyCVecKy.net] >>206 今見ています
213 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 17:24:55.92 ID:iePtiDR/.net] >>205 7-Zip のパスは自分の環境に合わせる @echo off path C:\WINDOWS\system32;C:\WINDOWS; path C:\Program Files (x86)\7-zip;%path% set /p i=圧縮するフォルダのフルパス= set "i=%i:"=%" set /p o=書庫を作成するフォルダのフルパス= set "o=%o:"=%" set /p n=書庫名(拡張子なし)= for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA" 7z a "%o%\%n%.7z" "%d%" pause
214 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 18:42:28.21 ID:
] [ここ壊れてます]
215 名前:nyCVecKy.net mailto: >>209 ありがとうございます @echo off path C:\WINDOWS\system32;C:\WINDOWS; path C:\Program Files\7-Zip;%path% set /p i=Z:\TE= set "i=%i:"=%" set /p o=Z:\zz= set "o=%o:"=%" set /p n=a= for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA" 7z a "%o%\%n%.7z" "%d%" pause 7-Zip のパス C:\Program Files\7-Zip ZドライブTEフォルダを圧縮 Zドライブzzフォルダに作成 書庫名aにしてみましたが動作しませんでした 誤った箇所ありますでしょうか [] [ここ壊れてます]
216 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:22:25.25 ID:4n4gfKEy.net] >>210 書き換えないといけないのは7zipのパスのところだけであとのところはいじっちゃだめ なので↓をメモ帳に貼り付けて適当な名前のbatファイルに保存が正解 @echo off path C:\WINDOWS\system32;C:\WINDOWS; path C:\Program Files\7-Zip;%path% set /p i=圧縮するフォルダのフルパス= set "i=%i:"=%" set /p o=書庫を作成するフォルダのフルパス= set "o=%o:"=%" set /p n=書庫名(拡張子なし)= for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA" 7z a "%o%\%n%.7z" "%d%" pause
217 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:28:03.67 ID:iePtiDR/.net] >>210 コンソール入力するのが嫌なら set i=Z:\TE set o=Z:\zz set n=a
218 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:35:30.91 ID:nyCVecKy.net] >>211 >>212 これでできました @echo off path C:\WINDOWS\system32;C:\WINDOWS; path C:\Program Files\7-Zip;%path% set i=Z:\TE set o=Z:\zz set n=a for %%A in ("%i%") do set "d=%%~nxA" & cd /d "%%~dpA" 7z a "%o%\%n%.7z" "%d%" pause 自分のような者に教えていただきありがとうございました
219 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 23:24:33.44 ID:D3n586fF.net] CMDの画面でこういうのを入力して実行したら FOR /L %I IN (1,1,20) DO @CALL ECHO %I 画面の上のタイトルに文字が うじゃうじゃ出て来るのはなぜ?
220 名前:デフォルトの名無しさん mailto:sage [2019/06/01(土) 22:51:37.17 ID:cR7U/Ve2.net] 最近の発見 remの前に空白をおける : でラベルを示すが、:の前後に複数の空白、タブ、全角空白があってもよい : タブ abc またラベルの後の空白以降の文字列は無視するのでコメントを書ける : abc エラーの場合 まあ、あまり使うところないけど
221 名前:デフォルトの名無しさん mailto:sage [2019/06/02(日) 00:30:45.28 ID:0ZBCelud.net] 最後のは割と便利そうだけど 現場だとコメントはREM使えっていうコーディング規約に阻まれそうだw
222 名前:デフォルトの名無しさん mailto:sage [2019/06/02(日) 03:07:05.57 ID:rFF/uYB6.net] >>214 そもそも call の引数はバッチファイル名かラベルだ。 それ以外の、内部コマンドや外部コマンドじゃない。 そんな使い方、help のどこにも書いてない。 一見、正常に動作している様に見えるが、 内部では子プロセスが異常終了している。 だからタイトル名に子プロセスの残骸が残る。 call set なども動作はするが邪道。
223 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 23:08:45.76 ID:YyzuHNes.net] >>215 REM は「コマンド」だから前に空白が置ける。それは当然として。 ラベルをコメント代わりに使うのは止めとけ。 for や if コマンドの中で「インテンドを使って」コメントに使おうとすると弾かれる。 大人はバッチのコメントは REM で書くものだ。 Intel のドライバーインストーラーのバッチは奇麗だと思うぞ。
224 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 19:33:03.04 ID:ESLww06V.net] 変数のサイズの最大値って何バイトなんだろう @echo off setlocal enabledelayedexpansion set "a=x" for /L %%i in (1,1,12) do set "a=!a!!a!" set "b=x" for /L %%i in (1,1,13) do set "b=!b!!b!" if !a!==!b! (echo "a=b") else echo "a<b" pause 結果は "a=b"
225 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 20:37:25.93 ID:ESLww06V.net] >>219 8187 バイトかな? 半端な値だな...
226 名前:デフォルトの名無しさん mailto:sage [2019/06/10(月) 07:14:20.96 ID:24zpPZFc.net] https://www.atmarkit.co.jp/ait/articles/1510/30/news041.html 内部的には1つの変数当たり最大32767文字 コマンドプロンプトの入力行は最大で8190文字 システム環境変数やユーザー環境変数の最大値は約2000文字(setxコマンドでは最大1024文字) @echo off &setlocal set a=x set b=x set /a i=2 :LOOP set a=%a%x echo %i% if not %a%==%b% ( set b=%a% set /a i+=1 goto :LOOP ) pause 速くて正確ではないけど4093
227 名前:くらいで落ちた コマンドの制限に掛かるみたいやね [] [ここ壊れてます]
228 名前:デフォルトの名無しさん mailto:sage [2019/06/10(月) 07:46:35.61 ID:acT05/Jv.net] >>221 ありがとう、参考にします 1行当たり8190文字がネックだね
229 名前:デフォルトの名無しさん mailto:sage [2019/06/10(月) 15:28:36.17 ID:q9TwxOtc.net] >>221 こういうのって統一して何バイトって決めないとやばくないのかな windowsバージョン、英語、日本語、ヒンズー語など言語で微妙に変化すると、 おかしなことがおきたり、ウィルスの侵入口に利用される
230 名前:デフォルトの名無しさん mailto:sage [2019/06/10(月) 18:52:33.54 ID:acT05/Jv.net] 遅延展開では変数名1文字なら値は8189文字まで。半角全角は無関係。 変数名が1文字増えると値の最大値は1文字減る set "a=!b!" の様に二重引用符で囲むと最大値は2文字減る 遅延じゃないと a=%b% 以外のコマンドラインの文字数分が更に減る 変数 a が5000文字の場合 if %a%==%a% echo ng は落ちるが if !a!==!a! echo ok は落ちない
231 名前:デフォルトの名無しさん mailto:sage [2019/06/10(月) 18:58:22.71 ID:OlE51f/u.net] >>223 そもそもそんなギリギリまで使う方がおかしい あとウィルスとかのセキュリティの話はまた別の話
232 名前:デフォルトの名無しさん mailto:sage [2019/06/10(月) 19:19:36.75 ID:acT05/Jv.net] cmdは既に穴だらけなんで
233 名前:デフォルトの名無しさん mailto:sage [2019/06/10(月) 20:08:18.95 ID:8z0TGIdq.net] 穴だらけなのかもしれないが、外部に開いた穴は無いんで 悪用されるにはその前に侵入を許してしまってる必用がある まあ侵入されたあとにコマンドプロンプトを使うようなウィルスはあるかは知らないけど
234 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 05:43:03.21 ID:mwwG6pNT.net] ワンラインで8kか フルパス200文字位のファイルを40個D&Dしたらもうパンクか ヘタレ過ぎる
235 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 16:08:50.98 ID:AKGG1UAL.net] 初心者故説明不足でしたらご指摘ください。 調べてもわからなく、ご教示いただけないでしょうか。 やりたいこと Windowsアップデートのインストール一覧のうち 2019年分のみ抽出したい。 やったこと 一覧を取得するコマンドで情報をテキストファイルに出力。 その後findstrで2019分のみを抽出しようとしたけど 抽出出来なかった。 実行コマンド Windowsアップデート一覧取得 wmic qfe get InstalledOn,HotFixID > aaa.txt 抽出コマンド findstr "2019" aaa.txt 抽出コマンド実行後、結果が帰って来ませんでした。 なぜ結果が帰って来ないのかが全くわかりません。 どうか、対処法をご教示いただけないでしょうか。
236 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 16:21:50.48 ID:mwwG6pNT.net] ユニコードだからじゃない? type aaa.txt > aaa1.txt aaa1.txt でやってみろ
237 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 16:30:25.48 ID:SBjduyI+.net] wmicはリダイレクトするとUTF16LEになるから 230みたいに文字コード変換するか、パイプで wmic qfe get InstalledOn,HotFixID | findstr /n "2019"
238 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 16:31:56.22 ID:SBjduyI+.net] あ、/n付けちゃったけどまぁいいか
239 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 16:53:09.70 ID:AKGG1UAL.net] >>230 >>231 ご教示頂きましてありがとうございます! 文字コードは盲点でした。もっと勉強します。 教えて頂いたコマンドで自身の望む結果が帰って来ました。 ありがとうございます!
240 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 10:13:44.37 ID:P3O2UGUp.net] Explorerから「送る」SendTo で使うバッチの中の pushd "%~dp1" が失敗するケースて有り得る? 送るから使うって事はアクセス出来てるはずなので失敗する事はないと思うんだけど pushd "%~dp1"||exit とか失敗した場合の処理書いといた方が良いのかな
241 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 12:37:34.91 ID:qazE1A0w.net] >>234 パスの中に全角スペースが入っていて半角スペースが入ってない場合なんかは失敗するんじゃないかな
242 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 14:43:51.
] [ここ壊れてます]
243 名前:05 ID:rRFcU9uI.net mailto: >>234 フルパスに半角スペースが無くて、それ以外の文字で区切られた場合、 区切られた位置が親フォルダだったら、 さらにその親に移動するだけで、エラーにもならない [] [ここ壊れてます]
244 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 14:50:46.43 ID:P3O2UGUp.net] >>235 その問題、失念してた。ありがとう パスに半角スペースが無くて、全角sp" "、コロン","、セミコロン";"、ハット"^"、イコール"=" の何れかが有る時だね 半角sp有る無し関係なく引数全部""括るようにすれば良いのにまだこの問題残ってたんだね 意図しない動作ではあるものの最初にデリミタ文字を含むフォルダの親フォルダにカレント移動して pushd 自体は成功する pushd が失敗する事例を知っていたら教えて欲しい この問題は対応面倒なのでパスに半角スペースを含めるようにして対処するよ
245 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 15:04:31.95 ID:rRFcU9uI.net] 引数いくつか知らんが pushd "%~dp2" は失敗するだろ。 引数1個限定なら %2 が有れば exit するとか。 あるいは >>48 を参考に
246 名前:234 mailto:sage [2019/06/13(木) 16:36:42.36 ID:P3O2UGUp.net] 送るから使う前提で pushd "%~dp1"||エラー処理 のエラー処理を書く意味あるかな?てのが聞きたかった事なんだ まあおまじない的にpause&exitしとくよ。ありがとう
247 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 17:10:58.72 ID:rRFcU9uI.net] 引数全部で if "%~dp1"=="%~dp2" if "%~dp1"=="%~dp3" if "%~dp1"=="%~dp4" とか確認すりゃ問題ない
248 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 17:24:03.99 ID:rRFcU9uI.net] >>240 でもファイル名使うとダメだな
249 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 15:25:04.04 ID:/ScwnRxc.net] 誰もツッコミ無しか SendTo とか D&D は何もしなくても自動的に 送り側のディレクトリに移動するんだが
250 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 15:52:59.01 ID:/ScwnRxc.net] SendTo にバッチ本体じゃなくて ショートカットを入れたのかね でもプロパティの作業フォルダを空にすればいい 怪しげな引数を利用するよりマシだろ
251 名前:デフォルトの名無しさん [2019/06/15(土) 09:44:04.71 ID:wrdBniJb.net] 7-ZIPの 7za.exe でワイルドカード使ったときにサブフォルダを除外するにはどうしたらいいでしょうか? -r-を付けてもなぜか効かないんですが 7za.exe a XXX.zip -r- *
252 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 12:34:19.95 ID:/kIGVJHV.net] >>244 7zaは経験ないが7zと同じだろう 引数に*としたらサブディレクトリも含む サブディレクトリを指定したら、それ以下の全部を含む そこでスイッチは関係ない ファイルだけ圧縮したいなら @echo off path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS; if exist archive.7z del archive.7z set a= setlocal enabledelayedexpansion for %%i in (*) do set a=!a! "%%i" 7z a archive.7z !a%! pause
253 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 12:36:06.42 ID:/kIGVJHV.net] ああ、すまん .zip に置き換えて
254 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 13:27:41.74 ID:/kIGVJHV.net] >>245 はファイル名に!^があると誤動作するので @echo off path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS; if exist XXX.zip del XXX.zip for %%i in (*) do 7za a XXX.zip "%%i" pause にした方がいいかもね ちなみにInfo-ZIPのzip.exeでは zip XXX.zip * だけでいいが空のサブディレクトリを作成する
255 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 08:25:16.99 ID:gSWoSWwj.net] .commandでターミナルを開いてpython3 /hoge/test.pyを入力、エンターを送信してpyファイルを実行したいのですがご教授ください。m(_ _)m echo python3 /hoge/test.pyとするとターミナルに入力はされるのですが、pythonが実行されません。 ちなみに.batでは、 cd C:\hoge\ cmd /k python test.py でpythonを実行する事ができました。 .commandで同じ事をするにはどうすればいいでしょうか?
256 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 13:48:44.19 ID:gSWoSWwj.net] 248です 解決しました。m(_ _)m echoなんか付けずに python3 /hoge/test.py でpythonが実行できました。ありがとうございます。
257 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 18:30:49.93 ID:/bUEZ7B5.net] バッチファイルからbeep音を出す echo ^G >