【.cmd】 バッチファイルスクリプト %14 【.bat】

■ このスレッドは過去ログ倉庫に格納されています
2020/08/15(土) 07:00:26.64ID:f3kW5kCx
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう

過去スレ
%13 http://mevius.2ch.net/test/read.cgi/tech/1542779527/
%12 http://mevius.2ch.net/test/read.cgi/tech/1489207631/
%11 http://echo.2ch.net/test/read.cgi/tech/1424858999/
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc11.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1178281991/
バッチファイルプログラミング 3.bat
http://pc11.2ch.net/test/read.cgi/tech/1148485555/
バッチファイルプログラミング 2.bat
http://pc8.2ch.net/test/read.cgi/tech/1104911889/
バッチファイルプログラミング質問スレ
http://pc5.2ch.net/test/read.cgi/tech/1040614686/
2021/02/23(火) 02:25:49.54ID:8PZAxred
>>181>>192
もドラッグしても何も起こりませんでした
https://i.imgur.com/g5O9vPN.png
1、2、3というファイル名のZIPが入っている「TEST」フォルダをドラッグ
https://i.imgur.com/5AerIN4.png
このTESTというフォルダが3というフォルダ名になれば良いのですが…。
ドライブ直下では他のフォルダ名が変わってしまうと怖いのでP/新しいフォルダ/test
という階層で試しています
やはり不可能でしょうか
2021/02/23(火) 08:41:00.03ID:iGzMgm/L
おれ環で試したところ、
>>181 では test が 3 に変わったが。
test を test) にするとダメだが。
>>192 は test は変わらん。というか他人のバッチは知らんわ。

試しに、このバッチにドラッグしてみて
@echo off
echo %*
pause

こう表示されなければシステムの問題

P:\新しいフォルダー\test
2021/02/23(火) 09:28:04.09ID:iGzMgm/L
>>192の5行目
pushd "%~1" || (pause&exit /b)
あと
&goto :BR と :BR は要らん
2021/02/23(火) 23:25:00.87ID:mSOvESBF
>>206
作っていただけませんでしょうか、、、
2021/02/23(火) 23:58:17.09ID:vON2H8DW
まさかただでやれと?
2021/02/24(水) 08:24:23.61ID:PISIFT9J
>>210
助けろって全部作れってことかよ
だるいし「、、、」が気持ち悪いからパス

使うコマンド教えたのに自分で作って貼りもしないくせに作れは論外
あとは使い方調べてやりたいようにやるだけじゃん
自分で作らないと理解できずに>>178みたいになるのが目に見えてる
>>1読んだらそういうスレじゃないことわかるだろ
2021/02/24(水) 10:07:20.78ID:wDwSsMVY
聞く前にまずググれ
バッチ IP変更
2021/02/24(水) 21:12:07.08ID:6sz2UuTx
これはひどい
215デフォルトの名無しさん
垢版 |
2021/02/24(水) 22:09:11.14ID:lmMJyFPq
つーかなんで手動選択なん?
端末で走らせるなら端末名取れるだろ
2021/02/24(水) 23:24:44.75ID:m3EDeT3k
どういうこと
そのBATはUSBか何かに入れて各端末に持ち込むのか
それとも既に繋がっている端末にリモートで変更するのか
(各端末が一つのネットワークじゃ無くて別なところも気になる)
2021/02/25(木) 03:47:04.44ID:2izs5u42
いや、もうどうでもいいだろ
218157
垢版 |
2021/02/25(木) 11:51:36.12ID:dOCTT7eM
>>138

>>157-160
の、160 のa.rb 内に、Ruby で書いた。
このショートカットに、複数フォルダをD&D する

ソートの昇順・降順は、ソート後の配列.first/last で

ただし、日本語のファイル名では、\x{8356}\x{8387}\x{815B} のように表示されてしまう。
DryRun を使ったので、実際には実行されません

require 'pathname'
require 'fileutils'

# ドットよりも前の、文字列を返す。ab.cd.xy なら、ab を返す。
# ab.cd を返したいのなら、rindex を使う

def before_dot( str )
idx = str.index( "." ) # ドットの位置を、先頭から探す
# idx = str.rindex( "." ) # ドットの位置を、末尾から探す

if idx # ドットが有れば
str[ 0, idx ] # 最初から、idx 文字数分を切り出す
else
str
end
end

次へ続く
219157
垢版 |
2021/02/25(木) 11:53:03.33ID:dOCTT7eM
# ARGV は、D&D した複数フォルダの配列で、1つずつ処理する
ARGV.each do |full_path|
dir_path = Pathname.new( full_path )
next unless dir_path.directory? # フォルダ以外は処理しない

# 直下のファイルのみを取り出して、ファイル名でソートする
file_names = dir_path.children( ).select( &:file? ).map( &:basename ).map( &:to_s ).sort
file_name = file_names.first # 昇順
# file_name = file_names.last # 降順なら、これを使う

file_n = before_dot( file_name ) # 上で定義した関数
dest_path = dir_path.parent.join( file_n ) # 変更後のフォルダ名

# 変更後のフォルダ名が、既に存在する場合は、エラー
raise "#{ dest_path } が、既に存在します" if dest_path.exist?

FileUtils::DryRun.move( dir_path, dest_path )
end
2021/02/25(木) 12:05:28.17ID:Ps3dMfcs
もう質問者は来ないよ
2021/03/03(水) 17:41:39.49ID:1pB7u9PK
errorlevel 9009 はなぜ9009なのですか?
他の数字じゃダメだったんですか?
2021/03/03(水) 19:21:37.30ID:6R5ygXlK
1919とか4545とか0721じゃ不快だろ?
2021/03/03(水) 23:07:15.98ID:EQp2xIYJ
qooq!
2021/03/04(木) 01:00:16.15ID:qQ3/2C8M
1123
2021/03/04(木) 07:32:57.88ID:YnU/cJu1
4126
2021/03/09(火) 05:40:32.23ID:WB4N5jzF
delコマンドでファイルを消すことはできますが
ゴミ箱に入れたい場合はどうすればよいのでしょうか?
2021/03/09(火) 06:44:52.98ID:psHK4d9P
「cmd ゴミ箱へ移動」でググれ
228226
垢版 |
2021/03/13(土) 01:44:32.44ID:aqgAbZuG
>>227
cmdではムリポな件、承知しました><
2021/03/13(土) 03:06:59.13ID:pthlsCp5
>>228
なんで?
WSHやPowershellでのサンプルがいっぱい見つかるだろ
それをbatに組み込めばいいだけ

【例】
set filepath=%~f1
rem -- 削除確認メッセージ付き ---
powershell -C "(new-object -comobject \"Shell.Application\").NameSpace(0).ParseName(\"%filepath%\").InvokeVerb(\"delete\")"

rem -- メッセージなし ---
rem powershell -C "(new-object -comobject \"Shell.Application\").NameSpace(10).MoveHere(\"%filepath%\")"
2021/03/22(月) 08:41:49.24ID:ERIrsy59
「color ec」で黄色背景の赤文字とかやってたんだけど
いつのまにかカスタードクリームみたいなうっすい黄色になってるな
XPの頃は真っ黄色だったのにいつからこんな中途半端な色になったんだ?
2021/03/22(月) 08:59:02.64ID:gb0Yw1OG
c md.exeちょいちょいアプデされてるからな
プロパティで[レガシーコンソールを使用する]をオンにしたら昔の仕様になるかもよ
2021/03/22(月) 11:33:33.41ID:IKUBKfoT
>>230
たぶん2017年に変った
Windows 10 build 16257
https://devblogs.microsoft.com/commandline/updating-the-windows-console-colors/
2021/03/22(月) 12:49:31.12ID:qU+vdcAr
c md.exeってNGなのかよ
2021/03/22(月) 12:58:34.93ID:IKUBKfoT
cmdで実行できるのに.exe付けるとNGとか意味不明だよな
2021/03/22(月) 13:03:44.31ID:qU+vdcAr
command.com
powershell.exe
2021/03/22(月) 13:27:25.65ID:yqDq0P8A
以前それを含むウィルスの一部コードだと思われるものが貼られまくったせいだと思う
2021/03/22(月) 13:29:51.79ID:yqDq0P8A
補足しておくと、ノートンが反応しまくってスレdatファイルを消しちゃうので
スレが見れない連発ね
2021/03/22(月) 13:47:35.81ID:IKUBKfoT
cmd とか "cmd".exe とか %comspec% とか穴だらけ
2021/03/22(月) 17:20:06.07ID:YZ6QCAld
cmd.exe
これでどうだ?
2021/03/22(月) 21:10:49.47ID:ERIrsy59
>>232
なるほど時代(LCD)に合わなくなったってことか、サンクス。。

>>231
再起動必要みたいだから今度再起動する時(1か月後ぐらいかな?w)に試してみます。
2021/03/22(月) 21:18:24.54ID:ERIrsy59
しかしMS-DOS時代みたいなあのどぎつい黄色が良かったんだがなあ・・・残念・・・
2021/03/22(月) 22:23:48.05ID:FrFq7CFg
ANSY.SYSのおもひで
2021/03/22(月) 23:49:54.90ID:IKUBKfoT
>>241
https://mevius.5ch.net/test/read.cgi/tech/1542779527/8
244デフォルトの名無しさん
垢版 |
2021/03/23(火) 00:45:55.21ID:5blhcD6i
>>242
ANSI.SYSな
2021/03/23(火) 02:32:13.78ID:QbxOC6mC
>>244
あい
246241
垢版 |
2021/03/23(火) 22:14:27.04ID:lgCFvm/4
>>243
現場の検証用PCなんでレジストリいじるのはNGでしたわw
でもこんな方法もあるんだね。参考になったよサンクス
2021/03/24(水) 14:20:41.98ID:yj6gJxmr
漏れは、WSL2 のコンソールが見にくいので、
Microsoft 製のColorTool で、配色テーマを変えてる

多分これも、レジストリをいじっている
2021/03/24(水) 16:41:09.17ID:cQ6WYo0q
俺は最近 Windows Terminal を使いだした
settings.jsonの設定が面倒くさい
でも >>128 のようなコピペのバグが無いので助かる
2021/03/24(水) 18:12:34.74ID:uMlO6v/T
>>248
ディレクトリを指定して開けないので使いづらい
2021/03/24(水) 19:38:25.90ID:d/Fx9DKH
>>249
-dで指定できない?
2021/03/24(水) 21:27:53.44ID:KCz6csQE
>>250
改めてアップデートしてみた試したけど
最近のバージョンだと、指定できるようになったんだな
さらに1.6でコンテキストメニューにデフォルトで登録されるようになってた

ただ、相変わらずライブラリやドライブで開くことはできないようだねぇ
2021/03/26(金) 15:46:43.29ID:9VbgFvvG
>>248
なるほど
そろそろ移行したほうがいいのかな
2021/03/26(金) 17:43:50.10ID:vSybir0X
ストアアプリという時点でゴミ
2021/03/26(金) 18:20:21.52ID:moYXNnAH
ストアアプリもマトモなやつは増えてきたよ
UWPのタブレットUI強制やら特大ウンチ機能制限やらがだいぶ撤廃されて、デスクトップアプリと大差なくなったからね、ようやく
まぁ遅きに失した感あるんですがね
2021/03/26(金) 20:02:56.96ID:Wy51+x+D
wt画面に複数ファイルD&Dすると全部表示されて便利だわ
コマンドの引数に使える
cmd画面だと一個だけだ
2021/03/26(金) 20:16:38.66ID:yyPdQtcN
ストアって時点でマトモとかそういう問題じゃないんだがな
OSにプリインストールでもされてれば別だが
2021/03/26(金) 20:25:35.57ID:yyPdQtcN
gitにPreinstallKit.zipってあるのな
ゴミは撤回しとくわ
2021/03/26(金) 20:41:58.26ID:Wy51+x+D
conhost.exe使ってれば
2021/03/26(金) 20:44:09.41ID:MahXm1Ia
こんなこと言うと怒られるけど早くOS標準にしてくんないかな
2021/03/26(金) 20:57:10.75ID:Wy51+x+D
まだ動作が若干あやしいぞ
カーソルがずれてたり
意味不明な文字が表示されたり
2021/04/03(土) 13:19:14.73ID:YB/KO+42
batファイルで並列処理するのってやっぱ無謀?
フォルダ内の画像を4並列で別の形式に変換したいみたいなやつ
2021/04/03(土) 13:43:34.69ID:vSOTAguS
>>261
過去ログにあるから漁れ
2021/04/03(土) 18:07:00.76ID:YB/KO+42
>>262
%10までのスレを「並列」で検索したけどそれらしいものは見つからなかったよ
2021/04/03(土) 19:12:28.03ID:vSOTAguS
>>263
https://echo.5ch.net/test/read.cgi/tech/1424858999/857
2021/04/03(土) 19:48:52.56ID:YB/KO+42
>>264
なるほど
tasklistでプロセスが生きてるか確認ってのは思いついたけどプロセス数を数えられるのは知らなかった
2021/04/03(土) 21:06:39.36ID:vSOTAguS
ただなあ
画像変換ごとき瞬時に終わるのでタスク監視でカウントしてる暇がないんじゃないかと
2021/04/03(土) 21:39:55.57ID:YWCwVZAz
何か昔書いたレスが掘り起こされてるw

画像だったら RalphaPlus を使っちゃうな
フリーでないシェア版だけど64bit版でメモリ不足になることもまずなくて、
32bit版では落ちてしまうような、大きめな16画像並列とかやっても問題ないし、
変換設定ファイルをいくつも作成できるので、バッチから呼び出すのにも
都合よくて便利、おすすめ
4並列程度ならフリーのでも多分問題ないと思う、並列処理の並列(多重起動)したいなら
シェア版が必要になるけど
2021/04/03(土) 21:40:52.86ID:YB/KO+42
>>266
最近の画像規格は変換に時間かかる上CPU使い切らないという事が多々あるからそこらへんは大丈夫だと思う
まだ試してないけど
2021/04/04(日) 12:25:17.64ID:BHN4NYpU
外部ツールに頼るんならpwshの力ちょっも借りてもいいのでは
echo file1 ... | % -parallel {コマンド $_; ...}
$_はfile_n、ジョブ数のデフォルトは5

もしかしたらプリインストールの古いやつでは動かないかも
270デフォルトの名無しさん
垢版 |
2021/04/09(金) 23:29:04.49ID:0EdakHoK
すみません、勉強不足なのですが教えていただけますでしょうか。
コマンドプロンプトで、出力結果から特定の値だけ抜き出したいのですが、
1行に表示される一部だけ 文字数以外で指定ってできないでしょうか?

ADのユーザ名を検索して日本語名だけ抽出したいのですが
dsquery user -samid "username" で検索して出てくる
"CN=XXX XXX,OU=ouname,DC=Dcname,DC=local "

CN= のあとのXXX XXXだけ変数にいれたいのですが出来なくて困っています。
2021/04/10(土) 00:43:06.37ID:lls/f8GA
for /f "delims==, tokens=2" %%i in ("CN=XXX XXX,OU=ouname,DC=Dcname,DC=local ") do echo %%i
2021/04/10(土) 11:17:28.20ID:QzAXiJxN
>>271
ありがとうございます。

そもそも自分のやりたいこと書かずにすみません、
自分の環境なのかうまくうごきませんでした。
batファイルでADから実行している利用者情報をCSVかなにかでエクスポートしようとしていまして
usernameだとログイン中のIDで表示されるので

dsquery user -samid %usernam%
とやって、cn=に出てくる日本語名だけを抽出したかったのですが、
皆さまだったらどのような方法をされるのでしょうか。
273デフォルトの名無しさん
垢版 |
2021/04/10(土) 12:23:55.67ID:bRqDVIlt
現在進行系の質問ありますけど追加質問させてください
for /F %A in ("テスト") do echo %A %A
としたときに「テスト テスト」が出力されますが
「テスト %A」を出したいときはどうすればいいですか?
274デフォルトの名無しさん
垢版 |
2021/04/10(土) 12:28:34.76ID:bRqDVIlt
連投すみません
for /F %B in ("テスト") do echo %B %A
もありなんですけど%のエスケープ知りたいです
2021/04/10(土) 13:02:42.59ID:lls/f8GA
こっちでは dsquery を試せないので推測で

@echo off
for /f "delims==, tokens=2" %%i in ('dsquery user -samid %USERNAM%') do set ver=%%i
echo %ver%
pause
2021/04/10(土) 13:04:44.20ID:lls/f8GA
バッチで実行して
2021/04/10(土) 13:10:22.83ID:lls/f8GA
よくわからんが %USERNAM% でいいの? E は?
2021/04/10(土) 13:13:27.40ID:IU1rFRRP
>>273
set テスト=%A
for /f %A in ("テスト") do call echo %A %%A%

バッチは%→%%と重ねる事で%のエスケープ出来るけどコマンドプロンプトでは効かない
環境変数なら
echo %cd% %^cd% "%^cd%" ^"%^cd%"
でエスケープ可能だけど
for変数は>>274しか無いかも
for変数はアルファベットが都合悪いならメタ文字以外の記号も使えるしwin10で試したらひらがなも行けた
2021/04/10(土) 13:39:39.87ID:ULgsRvVE
フィルタリング機能はおそまつなので
275のように一旦全部のユーザーをファイルに書き出してやったほうがいい
あとはテキストエディタでも表作製ソフトでもPowershellとかでもいいけど
正規表現でフィルターすればいい
というかdsqueryコマンドにフィルター機能ぐらいありそうなもんだけど
別のコマンドと組み合わせて使うならエスケープ文字は^なので
for 〜 in ('dsquery 〜^|dsget 〜')
2021/04/10(土) 13:46:42.23ID:ULgsRvVE
unicodeが使われてる可能性もあるので
安全性を取るならbatを使わずにdsqueryの出力を直接ファイルに書いた後に加工するのがいいかも
とかcsvとか言ってるのでどうせエクセルとかで使うんなら
そのまま"CN=〜"の出力を読み込ませたあとで加工とかも出来そうなもんだけど
2021/04/10(土) 14:16:22.00ID:ULgsRvVE
あれ全ユーザーとかじゃなくて一つのユーザーだけなのか
どっちにしろPowershellでやった方が楽だと思うよ
2021/04/10(土) 20:33:13.55ID:hTFrpgtD
>>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!
 )
2021/04/10(土) 22:12:46.25ID:kfNVSQGB
>unicodeが使われてる可能性もあるので
これがあるからバッチでは原則処理しない
>>282みたいなことしてたらその内ひどい事になる
284デフォルトの名無しさん
垢版 |
2021/04/11(日) 00:53:55.03ID:X+5g0Z/F
>>275
ありがとうございます。%username%ですね Eが抜けました。
CSVはエクセルではなくてserverにOffice入れてないと、adidの日本語名にするのもちょっと骨でした。
ご指摘通りpowershellでできればいいのでしょうが
powershellは出来る人がいないのとバッチが多すぎて一部分を直して運用していました。
2021/04/11(日) 05:12:32.83ID:8j1o2avA
for /F %A in ("テスト") do @echo %A %^^A| more
2021/04/26(月) 14:11:50.54ID:FVrz/3IC
実行中のプロセスのCPUアフィニティを変更するコマンドは何ですか?

タスクマネージャの[詳細]タブで変更したり、
startコマンドの/affinityスイッチは知ってます。

ちなみに、目的はshogigui.exeとaperyに同じコアを使わせないことです。
2021/04/26(月) 16:39:41.34ID:5VqWgajG
Vector に LimitCPU とかあるけど使った事ない
2021/04/26(月) 17:25:33.86ID:vupwGLI3
実行中のプロセスで変更するコマンドって見当たらないな
タスクマネージャーとかのGUIアプリしか見つからない
俺も知りたいわ
2021/04/26(月) 18:44:26.08ID:g+6GvbLi
SET
 powershell -c "(get-process hoge).processoraffinity=1"

GET
 powershell -c "get-process hoge|select-object processoraffinity"
2021/04/26(月) 19:13:44.30ID:g+6GvbLi
GET/SETで分けることもないか(代入か否かで)
あと、同じプロセスイメージが複数ある場合の例(psはget-processのalias)
 powershell -c "ps chrome|%{$_.processoraffinity}
2021/04/27(火) 11:42:30.79ID:SlvFgNx9
>>289
できたー!!
dx
2021/04/28(水) 18:09:24.25ID:TBHOCaij
実行中のプロセスをキルした後、exeを起動する.batは組めないでしょうか?
ご教授お願いしたいです。
293デフォルトの名無しさん
垢版 |
2021/04/28(水) 19:31:14.30ID:Sz6ocakQ
実行中のプロセスを全部キルしたら多分Windowsがまともに動かなくなるぞ
2021/04/29(木) 12:33:19.43ID:UHw0q87H
taskkillしてstartすりゃいいんじゃねーの
2021/04/30(金) 13:18:51.37ID:QntBUF73
プロセスが自爆して自分の死後にexeを起動って意味?
2021/04/30(金) 13:34:43.19ID:KlpY5+7M
>>292
キルしてもすぐ消えないプロセスがあるから失敗するということかな
キルしたらもう一度プロセスが消えたかどうか確認しあればまたキルする
消えたら再起動

live2chは終了やキルしても消えない時がある(ゾンビ)
2021/04/30(金) 22:44:43.29ID:1FoMz0PJ
強制終了なんてするもんじゃないのよ
2021/05/05(水) 17:03:35.09ID:jBlPB1Jr
>>296
>live2chは終了やキルしても消えない時がある(ゾンビ)

アンデッドには効かなかったはず…
2021/05/05(水) 17:56:35.30ID:PPo4cFAu
killできない場合のことを考えておくことだね
じゃないと無限ループになる
2021/05/11(火) 09:43:15.42ID:2aTzy8bW
%0|%0
2021/05/11(火) 13:03:03.56ID:Ql061JAF
このスレってこういう呪文書く人多いよね
enabledelayedexpansionとかも呪文にしか見えないし
2021/05/11(火) 13:35:53.83ID:IBnoRfMr
にほんでいちばんさむいのはわっかないです
みたいな綴り
2021/05/11(火) 14:14:27.26ID:2aTzy8bW
稚内は平均気温は低いけど最低気温は内陸部に負けるね
2021/05/11(火) 14:46:36.64ID:XdIg8UA/
enable delayed expansion
305デフォルトの名無しさん
垢版 |
2021/05/11(火) 14:52:11.19ID:0OaQcACp
/d- とどっちがいい?
2021/05/11(火) 20:34:18.03ID:1ruivVGt
EnableDelayedExpansionって書けばちょっとだけ見やすくなる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況