[過去ログ] 【.cmd】 バッチファイルスクリプト %14 【.bat】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
262(1): デフォルトの名無しさん [sage] 2021/04/03(土) 13:43:34.69 ID:vSOTAguS(1/3) AAS
>>261261(1): デフォルトの名無しさん [sage] 2021/04/03(土) 13:19:14.73 ID:YB/KO+42(1/4) AAS
batファイルで並列処理するのってやっぱ無謀?
フォルダ内の画像を4並列で別の形式に変換したいみたいなやつ
過去ログにあるから漁れ
263(1): デフォルトの名無しさん [sage] 2021/04/03(土) 18:07:00.76 ID:YB/KO+42(2/4) AAS
>>262
%10までのスレを「並列」で検索したけどそれらしいものは見つからなかったよ
264(1): デフォルトの名無しさん [sage] 2021/04/03(土) 19:12:28.03 ID:vSOTAguS(2/3) AAS
>>263
2chスレ:tech
265: デフォルトの名無しさん [sage] 2021/04/03(土) 19:48:52.56 ID:YB/KO+42(3/4) AAS
>>264
なるほど
tasklistでプロセスが生きてるか確認ってのは思いついたけどプロセス数を数えられるのは知らなかった
266(1): デフォルトの名無しさん [sage] 2021/04/03(土) 21:06:39.36 ID:vSOTAguS(3/3) AAS
ただなあ
画像変換ごとき瞬時に終わるのでタスク監視でカウントしてる暇がないんじゃないかと
267: デフォルトの名無しさん [sage] 2021/04/03(土) 21:39:55.57 ID:YWCwVZAz(1) AAS
何か昔書いたレスが掘り起こされてるw
画像だったら RalphaPlus を使っちゃうな
フリーでないシェア版だけど64bit版でメモリ不足になることもまずなくて、
32bit版では落ちてしまうような、大きめな16画像並列とかやっても問題ないし、
変換設定ファイルをいくつも作成できるので、バッチから呼び出すのにも
都合よくて便利、おすすめ
4並列程度ならフリーのでも多分問題ないと思う、並列処理の並列(多重起動)したいなら
シェア版が必要になるけど
268: デフォルトの名無しさん [sage] 2021/04/03(土) 21:40:52.86 ID:YB/KO+42(4/4) AAS
>>266
最近の画像規格は変換に時間かかる上CPU使い切らないという事が多々あるからそこらへんは大丈夫だと思う
まだ試してないけど
269: デフォルトの名無しさん [sage] 2021/04/04(日) 12:25:17.64 ID:BHN4NYpU(1) AAS
外部ツールに頼るんならpwshの力ちょっも借りてもいいのでは
echo file1 ... | % -parallel {コマンド $_; ...}
$_はfile_n、ジョブ数のデフォルトは5
もしかしたらプリインストールの古いやつでは動かないかも
270: デフォルトの名無しさん [] 2021/04/09(金) 23:29:04.49 ID:0EdakHoK(1) AAS
すみません、勉強不足なのですが教えていただけますでしょうか。
コマンドプロンプトで、出力結果から特定の値だけ抜き出したいのですが、
1行に表示される一部だけ 文字数以外で指定ってできないでしょうか?
ADのユーザ名を検索して日本語名だけ抽出したいのですが
dsquery user -samid "username" で検索して出てくる
"CN=XXX XXX,OU=ouname,DC=Dcname,DC=local "
CN= のあとのXXX XXXだけ変数にいれたいのですが出来なくて困っています。
271(1): デフォルトの名無しさん [sage] 2021/04/10(土) 00:43:06.37 ID:lls/f8GA(1/4) AAS
for /f "delims==, tokens=2" %%i in ("CN=XXX XXX,OU=ouname,DC=Dcname,DC=local ") do echo %%i
272(1): デフォルトの名無しさん [sage] 2021/04/10(土) 11:17:28.20 ID:QzAXiJxN(1) AAS
>>271
ありがとうございます。
そもそも自分のやりたいこと書かずにすみません、
自分の環境なのかうまくうごきませんでした。
batファイルでADから実行している利用者情報をCSVかなにかでエクスポートしようとしていまして
usernameだとログイン中のIDで表示されるので
dsquery user -samid %usernam%
とやって、cn=に出てくる日本語名だけを抽出したかったのですが、
皆さまだったらどのような方法をされるのでしょうか。
273(1): デフォルトの名無しさん [] 2021/04/10(土) 12:23:55.67 ID:bRqDVIlt(1/2) AAS
現在進行系の質問ありますけど追加質問させてください
for /F %A in ("テスト") do echo %A %A
としたときに「テスト テスト」が出力されますが
「テスト %A」を出したいときはどうすればいいですか?
274(1): デフォルトの名無しさん [] 2021/04/10(土) 12:28:34.76 ID:bRqDVIlt(2/2) AAS
連投すみません
for /F %B in ("テスト") do echo %B %A
もありなんですけど%のエスケープ知りたいです
275(1): デフォルトの名無しさん [sage] 2021/04/10(土) 13:02:42.59 ID:lls/f8GA(2/4) AAS
こっちでは dsquery を試せないので推測で
@echo off
for /f "delims==, tokens=2" %%i in ('dsquery user -samid %USERNAM%') do set ver=%%i
echo %ver%
pause
276: デフォルトの名無しさん [sage] 2021/04/10(土) 13:04:44.20 ID:lls/f8GA(3/4) AAS
バッチで実行して
277: デフォルトの名無しさん [sage] 2021/04/10(土) 13:10:22.83 ID:lls/f8GA(4/4) AAS
よくわからんが %USERNAM% でいいの? E は?
278: デフォルトの名無しさん [sage] 2021/04/10(土) 13:13:27.40 ID:IU1rFRRP(1) AAS
>>273
set テスト=%A
for /f %A in ("テスト") do call echo %A %%A%
バッチは%→%%と重ねる事で%のエスケープ出来るけどコマンドプロンプトでは効かない
環境変数なら
echo %cd% %^cd% "%^cd%" ^"%^cd%"
でエスケープ可能だけど
for変数は>>274しか無いかも
for変数はアルファベットが都合悪いならメタ文字以外の記号も使えるしwin10で試したらひらがなも行けた
279: デフォルトの名無しさん [sage] 2021/04/10(土) 13:39:39.87 ID:ULgsRvVE(1/3) AAS
フィルタリング機能はおそまつなので
275のように一旦全部のユーザーをファイルに書き出してやったほうがいい
あとはテキストエディタでも表作製ソフトでもPowershellとかでもいいけど
正規表現でフィルターすればいい
というかdsqueryコマンドにフィルター機能ぐらいありそうなもんだけど
別のコマンドと組み合わせて使うならエスケープ文字は^なので
for 〜 in ('dsquery 〜^|dsget 〜')
280: デフォルトの名無しさん [sage] 2021/04/10(土) 13:46:42.23 ID:ULgsRvVE(2/3) AAS
unicodeが使われてる可能性もあるので
安全性を取るならbatを使わずにdsqueryの出力を直接ファイルに書いた後に加工するのがいいかも
とかcsvとか言ってるのでどうせエクセルとかで使うんなら
そのまま"CN=〜"の出力を読み込ませたあとで加工とかも出来そうなもんだけど
281: デフォルトの名無しさん [sage] 2021/04/10(土) 14:16:22.00 ID:ULgsRvVE(3/3) AAS
あれ全ユーザーとかじゃなくて一つのユーザーだけなのか
どっちにしろPowershellでやった方が楽だと思うよ
282(1): デフォルトの名無しさん [sage] 2021/04/10(土) 20:33:13.55 ID:hTFrpgtD(1) AAS
>>272 こんな感じかなあ
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /F "tokens=1* delims=," %%I in ( 'dsquery user -samid %usernam%' ) do (
set HEAD=%%I
set TAIL=%%J
:LOOP
if "!HEAD!" == "" goto :NEXT
for /F "tokens=1* delims==" %%I in ( "!HEAD!" ) do (
if "%%I" == "CN" set CN=%%J
)
for /F "tokens=1* delims=," %%I in ( "!TAIL!" ) do (
set HEAD=%%I
set TAIL=%%J
goto :LOOP
)
:NEXT
echo.!CN!
)
283: デフォルトの名無しさん [sage] 2021/04/10(土) 22:12:46.25 ID:kfNVSQGB(1) AAS
>unicodeが使われてる可能性もあるので
これがあるからバッチでは原則処理しない
>>282みたいなことしてたらその内ひどい事になる
284: デフォルトの名無しさん [] 2021/04/11(日) 00:53:55.03 ID:X+5g0Z/F(1) AAS
>>275
ありがとうございます。%username%ですね Eが抜けました。
CSVはエクセルではなくてserverにOffice入れてないと、adidの日本語名にするのもちょっと骨でした。
ご指摘通りpowershellでできればいいのでしょうが
powershellは出来る人がいないのとバッチが多すぎて一部分を直して運用していました。
285: デフォルトの名無しさん [sage] 2021/04/11(日) 05:12:32.83 ID:8j1o2avA(1) AAS
for /F %A in ("テスト") do @echo %A %^^A| more
286: デフォルトの名無しさん [sage] 2021/04/26(月) 14:11:50.54 ID:FVrz/3IC(1) AAS
実行中のプロセスのCPUアフィニティを変更するコマンドは何ですか?
タスクマネージャの[詳細]タブで変更したり、
startコマンドの/affinityスイッチは知ってます。
ちなみに、目的はshogigui.exeとaperyに同じコアを使わせないことです。
上下前次1-新書関写板覧索設栞歴
あと 716 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s