拡張子が .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/
探検
【.cmd】 バッチファイルスクリプト %14 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
2020/08/15(土) 07:00:26.64ID:f3kW5kCx
698デフォルトの名無しさん
2022/04/03(日) 02:50:31.03ID:hpCvdrMf バッチ自体を初めて作っててクリップボードのテキストを[]で囲んだ名前のフォルダをデスクトップに作りたいんだけど
powershell get-clipboardでクリップボードから持ってくる
mdとかNew-Item NewDirecrtoryでフォルダを作る
までわかって|とか>で色々試して見たんだけどまあ上手くいくはずもなく
そもそも出来る事なのかもわからないから質問しに来ました!たっけてー
powershell get-clipboardでクリップボードから持ってくる
mdとかNew-Item NewDirecrtoryでフォルダを作る
までわかって|とか>で色々試して見たんだけどまあ上手くいくはずもなく
そもそも出来る事なのかもわからないから質問しに来ました!たっけてー
699デフォルトの名無しさん
2022/04/03(日) 08:04:11.49ID:VNoVBeip for /f "delims=" %%a in ('powershell clipboard') do md [%a]
700デフォルトの名無しさん
2022/04/03(日) 08:07:00.01ID:VNoVBeip for /f "delims=" %%a in ('powershell clipboard') do md [%%~a]
701デフォルトの名無しさん
2022/04/03(日) 09:37:15.22ID:hpCvdrMf >>700
ありがとう!
for /f "delims=" %%a in ('powershell clipboard') do md C:\Users\----\Desktop\[%%~a]
でいけました。
ありがとう!
for /f "delims=" %%a in ('powershell clipboard') do md C:\Users\----\Desktop\[%%~a]
でいけました。
702デフォルトの名無しさん
2022/04/03(日) 15:33:41.09ID:MONKPJtx >>698
ちなみにPowerShellだけなら
powershell -c "Get-ClipBoard | ?{$_} | foreach {$dirName='[{0}]' -f $_; $dirPath=[IO.Path]::Combine([Environment]::GetFolderPath('Desktop'), $dirName); $null=[IO.Directory]::CreateDirectory($dirPath);}"
ちなみにPowerShellだけなら
powershell -c "Get-ClipBoard | ?{$_} | foreach {$dirName='[{0}]' -f $_; $dirPath=[IO.Path]::Combine([Environment]::GetFolderPath('Desktop'), $dirName); $null=[IO.Directory]::CreateDirectory($dirPath);}"
703デフォルトの名無しさん
2022/04/03(日) 15:38:56.15ID:XWBs+Kvf704デフォルトの名無しさん
2022/04/03(日) 17:32:35.14ID:5jbreqOF スペースのある文字列の扱いがわからんな
複数作ることを意図または許容するのか否かでちょっと違ってくる
複数作ることを意図または許容するのか否かでちょっと違ってくる
705デフォルトの名無しさん
2022/04/03(日) 22:48:33.20ID:7tiScrqu cmdのmkdirで作るか>>702みたいに.NETのAPIで作るかWin2APIで作るかでも違ってくる
706デフォルトの名無しさん
2022/04/03(日) 23:24:55.78ID:hpCvdrMf 色々方法があるけど何かしらcmdのみでは出来ないって事だけはわかった
面白いから少し勉強しようかなあ
面白いから少し勉強しようかなあ
707デフォルトの名無しさん
2022/04/14(木) 00:56:37.37ID:FFCnePh6 batにドラッグするだけで複数zipを同じ階層に解凍してくれるbatが作りたいです。
圧縮の場合は
@echo off
path C:\Program Files\7-Zip;%path%
for %%i in (%*) do cd /d "%%~i" && 7z a "%%~i.zip" *
で出来るのですが、解凍の場合がわかりません。わかる方いれば教えていただきたいです。宜しくお願い致します。
圧縮の場合は
@echo off
path C:\Program Files\7-Zip;%path%
for %%i in (%*) do cd /d "%%~i" && 7z a "%%~i.zip" *
で出来るのですが、解凍の場合がわかりません。わかる方いれば教えていただきたいです。宜しくお願い致します。
708デフォルトの名無しさん
2022/04/14(木) 02:56:14.25ID:wBUYMDtu :start
if "%~1"=="" goto :EOF
7z.exe x "%~1" -o"%~dpn1" -y
shift
goto :start
if "%~1"=="" goto :EOF
7z.exe x "%~1" -o"%~dpn1" -y
shift
goto :start
709デフォルトの名無しさん
2022/04/14(木) 16:24:25.05ID:NCtDoq3M 俺の勘違いだったらすまん
ドラッグで引数を渡す系だとバッチは括弧付きのファイル名が入った時点で破綻するような気がする
変なしがらみのないvbsやjs辺りで書いた方がいいかも
ドラッグで引数を渡す系だとバッチは括弧付きのファイル名が入った時点で破綻するような気がする
変なしがらみのないvbsやjs辺りで書いた方がいいかも
710デフォルトの名無しさん
2022/04/14(木) 18:16:44.99ID:qAvWbsmN 括弧の他にも色々とダメ文字が頭に浮かぶな
711デフォルトの名無しさん
2022/04/14(木) 20:34:57.53ID:YeXmNplS 複数選択のコンテキストメニューから展開した方がいいのでは
712デフォルトの名無しさん
2022/04/15(金) 20:04:21.77ID:neP5mDTX713デフォルトの名無しさん
2022/04/15(金) 20:49:13.87ID:6g+y36jy echo on で何が起きているか調べろ
ちなみに何をドラッグしているのか?
ちなみに何をドラッグしているのか?
714デフォルトの名無しさん
2022/04/15(金) 21:59:36.90ID:EPzG8fyD715デフォルトの名無しさん
2022/04/15(金) 22:29:24.28ID:4ntMkwZZ どこのスレのことかと思いましたが、
7-Zip総合スレ Part 10
https://egg.5ch.net/test/read.cgi/software/1520243361/454-
のことでしょうかね。
たしかに、>>707は、この人かも。
7-Zip総合スレ Part 10
https://egg.5ch.net/test/read.cgi/software/1520243361/454-
のことでしょうかね。
たしかに、>>707は、この人かも。
716デフォルトの名無しさん
2022/04/15(金) 23:09:37.54ID:7iiWUl24 ファイル名に半角スペースがあるとエラーになるよね
717デフォルトの名無しさん
2022/04/15(金) 23:40:21.50ID:neP5mDTX フォルダを圧縮したいのでフォルダドラッグしてます それはbatファイルでは不可能なんですかね
718デフォルトの名無しさん
2022/04/15(金) 23:56:17.81ID:cTakk7Wr これ以上触ってはいけないような気がする
719デフォルトの名無しさん
2022/04/16(土) 05:57:00.04ID:ZvCxX7eE720デフォルトの名無しさん
2022/04/16(土) 10:15:06.24ID:Xjbe7mxo 昔自作したやつがそう言えばどっかにあったな
色々試したけどzip名に全角スペースが含まれてる場合だけはどうにも出来なくて別のリネームバッチで半角スペースに置き換えてたわ
色々試したけどzip名に全角スペースが含まれてる場合だけはどうにも出来なくて別のリネームバッチで半角スペースに置き換えてたわ
721デフォルトの名無しさん
2022/04/16(土) 14:56:19.74ID:D1hG0R6r list1.txt
田中
山田
list2.txt
一郎
次郎
三郎
に対して
xj.bat
@echo off
setlocal enabledelayedexpansion
call :crossjoin "" %*
exit /b
:crossjoin
for /F "tokens=*" %%l in (%~2) do (
if [%~3] == [] (
set x=%~1%%l
echo !x:__=,!
) else (
set y= %*
set y=!y: %1=!
set y=!y: %2=!
call :crossjoin "%~1%%l__" !y!
)
)
を動かすと
xj.bat list1.txt list2.txt (続く)
田中
山田
list2.txt
一郎
次郎
三郎
に対して
xj.bat
@echo off
setlocal enabledelayedexpansion
call :crossjoin "" %*
exit /b
:crossjoin
for /F "tokens=*" %%l in (%~2) do (
if [%~3] == [] (
set x=%~1%%l
echo !x:__=,!
) else (
set y= %*
set y=!y: %1=!
set y=!y: %2=!
call :crossjoin "%~1%%l__" !y!
)
)
を動かすと
xj.bat list1.txt list2.txt (続く)
722デフォルトの名無しさん
2022/04/16(土) 14:56:54.30ID:D1hG0R6r 田中,一郎
田中,次郎
田中,三郎
山田,一郎
山田,次郎
山田,三郎
を得ます
このバッチファイルを
list3.txt
姓
田中
山田
list4.txt
名前
一郎
次郎
三郎
と、見出しが入ったファイルに対応するよう
改造していただけませんか
田中,次郎
田中,三郎
山田,一郎
山田,次郎
山田,三郎
を得ます
このバッチファイルを
list3.txt
姓
田中
山田
list4.txt
名前
一郎
次郎
三郎
と、見出しが入ったファイルに対応するよう
改造していただけませんか
723デフォルトの名無しさん
2022/04/16(土) 15:04:34.68ID:akel0sHj for /i分にskip=1指定入れてみるとか
724721
2022/04/16(土) 15:25:35.02ID:D1hG0R6r ありがとうございます
今アンドロイドなので、PC使えるときに
試して報告します
ちなみに、こういう総当りって、awkやPerl
でも作れるものでしょうか?
今アンドロイドなので、PC使えるときに
試して報告します
ちなみに、こういう総当りって、awkやPerl
でも作れるものでしょうか?
725デフォルトの名無しさん
2022/04/16(土) 15:43:07.54ID:pX/6gg3y %%lとか気持ち悪いな
こういうこと?
for /f "skip=1 delims=" %%a in (list3.txt) do for /f "skip=1 delims=" %%b in (list4.txt) do echo %%a,%%b
pause
なんでcallしたり置換したり面倒臭い事してるのか分からん
こういうこと?
for /f "skip=1 delims=" %%a in (list3.txt) do for /f "skip=1 delims=" %%b in (list4.txt) do echo %%a,%%b
pause
なんでcallしたり置換したり面倒臭い事してるのか分からん
726721
2022/04/16(土) 15:58:27.63ID:D1hG0R6r ありがとうございます
引用先の元ネタは、list1.txtなどの
対象ファイルがいくつでもいけます
そのためかと
引用先の元ネタは、list1.txtなどの
対象ファイルがいくつでもいけます
そのためかと
727デフォルトの名無しさん
2022/04/16(土) 17:13:22.10ID:nVJ4wCm0 やりたい事に対して一見して処理が意味不明
コードレビューすれば必ず突っ込みが入るパターン
コードレビューすれば必ず突っ込みが入るパターン
728デフォルトの名無しさん
2022/04/16(土) 17:39:10.95ID:akel0sHj shiftとか知らんのかな
729721
2022/04/17(日) 14:55:17.75ID:wrqgojCl "tokens=*" を
"skip=1 tokens=*" に変えたら
見出しを飛ばしてデータを作ってくれました
だけど出力ファイルが大きいとかなり
時間がかかりますね
元ネタのところに行ってVBS版の作成を
依頼してみます
ありがとうございました
"skip=1 tokens=*" に変えたら
見出しを飛ばしてデータを作ってくれました
だけど出力ファイルが大きいとかなり
時間がかかりますね
元ネタのところに行ってVBS版の作成を
依頼してみます
ありがとうございました
730デフォルトの名無しさん
2022/04/17(日) 15:10:00.22ID:jfoLRRUl ニコイチする度にcallしてたらそりゃ遅いわ
再帰でのcallやめるだけで結構速くなるよ
再帰でのcallやめるだけで結構速くなるよ
731デフォルトの名無しさん
2022/04/17(日) 16:31:06.01ID:A4GG7JI6 ハッチ処理はあまりやりたくないから、
もっとかっこいい言語でかいて、バッチに変換する(コンパイル)できるといい
バッチ見えなく化計画
もっとかっこいい言語でかいて、バッチに変換する(コンパイル)できるといい
バッチ見えなく化計画
732デフォルトの名無しさん
2022/04/17(日) 17:32:55.50ID:iLyScgaF >>708さんのを使ってみました
ファイル名にスペースが入っていると展開されないのを回避することできますか
:start
if "%~1"=="" goto :EOF
"C:\Program Files\7-Zip\7zG.exe" x "%1"
shift
goto :start
ファイル名にスペースが入っていると展開されないのを回避することできますか
:start
if "%~1"=="" goto :EOF
"C:\Program Files\7-Zip\7zG.exe" x "%1"
shift
goto :start
733デフォルトの名無しさん
2022/04/17(日) 17:39:26.89ID:b4thkYbt 上で"%~1"使ってるのに下では"%1"にしてる
734デフォルトの名無しさん
2022/04/17(日) 17:41:48.86ID:jfoLRRUl echoやpause使ってコマンド文がどうなってるのか確認したら?
735デフォルトの名無しさん
2022/04/17(日) 17:50:28.17ID:iLyScgaF736デフォルトの名無しさん
2022/04/17(日) 18:36:17.23ID:i7g3Seu6 いつまでこんなレガシー機能を使い続けるの
737デフォルトの名無しさん
2022/04/18(月) 11:21:00.70ID:PhhBhq60 >>736
powerShellがダブククリックで使えないし
powerShellがダブククリックで使えないし
738デフォルトの名無しさん
2022/04/18(月) 11:27:46.45ID:t3NwdXGg シンプルだからこそC++でジェネレートした.batを目視確認してから実行とかしやすいわけで
739デフォルトの名無しさん
2022/04/18(月) 13:50:09.12ID:OF8RRP9C >>730
どう書けばいいですか?
どう書けばいいですか?
740デフォルトの名無しさん
2022/04/18(月) 14:16:43.44ID:74jROqLf すでにあるコマンドを使うというのは楽でいい
もう少し細かいことをしたいと思うと苦労するけど
もう少し細かいことをしたいと思うと苦労するけど
741デフォルトの名無しさん
2022/04/20(水) 03:57:14.74ID:RFdms0p+ PAUSEコマンド関連で質問です
バッチファイル中にPAUSEコマンドを入れるとそこでキー入力を待ちますが、
その延長で
・エクスプローラでダブルクリックされて起動された場合はPAUSEで止める
・コマンドプロンプトから起動された場合は止めない
ということをしたいです
PAUSEコマンド自体には何もオプション等は無いようなのですが、何か方法はありますか
環境変数等をみて動作を切り替えることができないか調べてみましたが、
どちらの方法で起動されても同一なようで、悩んでおります
バッチファイル中にPAUSEコマンドを入れるとそこでキー入力を待ちますが、
その延長で
・エクスプローラでダブルクリックされて起動された場合はPAUSEで止める
・コマンドプロンプトから起動された場合は止めない
ということをしたいです
PAUSEコマンド自体には何もオプション等は無いようなのですが、何か方法はありますか
環境変数等をみて動作を切り替えることができないか調べてみましたが、
どちらの方法で起動されても同一なようで、悩んでおります
742デフォルトの名無しさん
2022/04/20(水) 05:42:50.53ID:q7JwT6An743デフォルトの名無しさん
2022/04/20(水) 07:19:49.48ID:Cwlkz3kl コマンドプロンプトを起動するときのショートカットに/k:autoexec.batを入れて
autoexec.batの中でset not_double_click=true
そしてダブルクリックで起動するバッチの中で
if not "%not_double_click%"=="true" pause
とか、どうかな
autoexec.batの中でset not_double_click=true
そしてダブルクリックで起動するバッチの中で
if not "%not_double_click%"=="true" pause
とか、どうかな
744デフォルトの名無しさん
2022/04/20(水) 09:15:24.62ID:RFdms0p+ >>742-743
回答どうもです
なるほど、ショートカットを作り、そこに判定の仕掛けを入れる、という方式ですね
ツールを配布するときは、ショートカットの設定やコマンドプロンプトの設定を
するためのインストーラが必要になりそうですね…
バッチファイル単体でどうにか…と思いましたが、検討してみます
回答どうもです
なるほど、ショートカットを作り、そこに判定の仕掛けを入れる、という方式ですね
ツールを配布するときは、ショートカットの設定やコマンドプロンプトの設定を
するためのインストーラが必要になりそうですね…
バッチファイル単体でどうにか…と思いましたが、検討してみます
745デフォルトの名無しさん
2022/04/20(水) 09:26:15.67ID:q7JwT6An746デフォルトの名無しさん
2022/04/21(木) 14:21:13.38ID:asEavXVa 昔の友は 今も友
俺とお前と(デンデン)大五郎
俺とお前と(デンデン)大五郎
747デフォルトの名無しさん
2022/04/21(木) 16:29:36.51ID:7MR/4l0o ちゃん!
748デフォルトの名無しさん
2022/04/24(日) 09:15:29.28ID:vcjjnxKB >>739
setlocal enabledelayedexpansion
set n=0
for %%a in (%*) do set /a n+=1
if %n% GTR 64 >&2 echo ERROR: Args is Max limit 64 exceeded.&pause&exit /b 1
set A=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$+-/:@[]_{}
set i=0
for %%a in (%*) do for %%b in (!i!) do for /f %%c in ("!A:~%%b,1!") do (
set "CMD_FOR=!CMD_FOR!for /f "usebackq delims=" %%%%c in (%%a) do "
set CMD_OUT=!CMD_OUT!,%%%%c
set /a i+=1
)
%CMD_FOR%echo %CMD_OUT:~1%
pause&exit /b 0
引数最大64個になってるけどfor変数のリストset Aを追加すれば増やせる
実際にどこまでforを多段に出来るかは知らない
コマンドの文字数制限とかあったような気がする
setlocal enabledelayedexpansion
set n=0
for %%a in (%*) do set /a n+=1
if %n% GTR 64 >&2 echo ERROR: Args is Max limit 64 exceeded.&pause&exit /b 1
set A=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$+-/:@[]_{}
set i=0
for %%a in (%*) do for %%b in (!i!) do for /f %%c in ("!A:~%%b,1!") do (
set "CMD_FOR=!CMD_FOR!for /f "usebackq delims=" %%%%c in (%%a) do "
set CMD_OUT=!CMD_OUT!,%%%%c
set /a i+=1
)
%CMD_FOR%echo %CMD_OUT:~1%
pause&exit /b 0
引数最大64個になってるけどfor変数のリストset Aを追加すれば増やせる
実際にどこまでforを多段に出来るかは知らない
コマンドの文字数制限とかあったような気がする
749721
2022/04/24(日) 11:08:56.51ID:IqM9oVR7 >>748
頭に@echo offをつけやってみました
10万行ぐらいの出力ファイルを
ローカルHDDに作ると
721では30分、
748では5分以内
(いつ終わったか分からないため)
となりました
ファイルのお尻になんか1行
ついてるのはご愛敬
頭に@echo offをつけやってみました
10万行ぐらいの出力ファイルを
ローカルHDDに作ると
721では30分、
748では5分以内
(いつ終わったか分からないため)
となりました
ファイルのお尻になんか1行
ついてるのはご愛敬
750デフォルトの名無しさん
2022/04/24(日) 19:27:47.47ID:lnSwl1A7 そこまで変わるのか
751デフォルトの名無しさん
2022/04/24(日) 23:16:01.47ID:YqrbVxmA752デフォルトの名無しさん
2022/04/24(日) 23:53:10.74ID:/3xv87ig この程度で分からんとか流石にそれはおまえの頭が悪すぎだろう
753デフォルトの名無しさん
2022/04/25(月) 23:47:31.88ID:3ou64YUW >>748の解説オナシャス!
754デフォルトの名無しさん
2022/04/26(火) 00:02:39.06ID:/dRsx73H755デフォルトの名無しさん
2022/04/26(火) 00:45:33.71ID:EhTMueYx いや特にその2行が意味不明で察せないんだわ
756デフォルトの名無しさん
2022/04/26(火) 01:04:14.98ID:/dRsx73H 1、2行入れたList.txt用意してecho onで実行して追ってみればどこがどうなってるのかくらい池沼でなければ分かるでしょ
757デフォルトの名無しさん
2022/04/26(火) 23:13:58.40ID:AEcCnDU9 フォルダの中にファイルが10個以上あったらタイムスタンプが一番古いファイルを削除する処理をバッチファイルでどう書くかどなたか教えろください。。
758デフォルトの名無しさん
2022/04/26(火) 23:29:20.25ID:OAZlYJMq >>757
ジャバスクリプト使え
ジャバスクリプト使え
759デフォルトの名無しさん
2022/04/27(水) 01:07:40.77ID:c7tqZe1K dirでソートしたのをforでskipしてdelすればいいんじゃね
760デフォルトの名無しさん
2022/04/27(水) 01:13:28.18ID:4aF/byUR バックアップファイルでも溜め込んでるのかな?
761デフォルトの名無しさん
2022/04/27(水) 01:13:59.63ID:CxYG3qjN pushd, popdは出口exitがたくさんあったり、あちこちgotoしたりすると
つじつまがあわなくなることがある
そういう時は%cd%でフォルダ位置を覚えておき、最後そこに戻すほうが気分的に楽
つじつまがあわなくなることがある
そういう時は%cd%でフォルダ位置を覚えておき、最後そこに戻すほうが気分的に楽
762デフォルトの名無しさん
2022/04/27(水) 03:00:29.08ID:itKYtkFa >>757
for /f "skip=9 delims=" %%a in ('dir /a-d /b /o-d') do del "%%a"
for /f "skip=9 delims=" %%a in ('dir /a-d /b /o-d') do del "%%a"
763デフォルトの名無しさん
2022/04/27(水) 18:14:04.80ID:pviHRewB >>757
Ruby で書いてみた。
DryRun なので、実際にはファイルは削除されません
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/Documents/test/*"
# そのディレクトリ内の全てのファイルパス・更新時刻を取得する。
# [ ファイルパス, 更新時刻 ]の配列の配列を戻す
def collect_filepaths_and_mtime( dir_path )
Dir.glob( dir_path )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.map { |full_path| [ full_path, File.stat( full_path ).mtime ] } # [ ファイルパス, 更新時刻 ]
end
temp_ary = collect_filepaths_and_mtime( dir_path )
if temp_ary.length >= 10
temp_ary.sort_by! { |ary| ary[ 1 ] } # 更新時刻の古い順でソート
# p temp_ary
FileUtils::DryRun.remove( temp_ary.first[ 0 ] ) # 削除
else
puts "ファイル数は#{ temp_ary.length } です。処理するファイルはありません!"
end
Ruby で書いてみた。
DryRun なので、実際にはファイルは削除されません
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/Documents/test/*"
# そのディレクトリ内の全てのファイルパス・更新時刻を取得する。
# [ ファイルパス, 更新時刻 ]の配列の配列を戻す
def collect_filepaths_and_mtime( dir_path )
Dir.glob( dir_path )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.map { |full_path| [ full_path, File.stat( full_path ).mtime ] } # [ ファイルパス, 更新時刻 ]
end
temp_ary = collect_filepaths_and_mtime( dir_path )
if temp_ary.length >= 10
temp_ary.sort_by! { |ary| ary[ 1 ] } # 更新時刻の古い順でソート
# p temp_ary
FileUtils::DryRun.remove( temp_ary.first[ 0 ] ) # 削除
else
puts "ファイル数は#{ temp_ary.length } です。処理するファイルはありません!"
end
764デフォルトの名無しさん
2022/04/29(金) 11:23:44.95ID:X7f5QGPR powershell
gci -File | sort -P LastWriteTime -D | select -Skip 10 | %{ del $_.FullName -Fo}
gci -File | sort -P LastWriteTime -D | select -Skip 10 | %{ del $_.FullName -Fo}
765デフォルトの名無しさん
2022/04/30(土) 11:02:51.79ID:usL/g0YR >>748
for /L 129個でやってみた
流石に途中で止めたけど以下で問題無く動いているようだから for の段数自体に制限はなさそう
文字数制限は過去ログで set が8190文字とか見たような
cmd.exe が1度にパース出来る文字数なのか setコマンドの制限なのかは分からないけど前者ならそこが限界になるね
@echo off
setlocal enabledelayedexpansion
set $$$=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$+-/:@[]_{}。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚'\
set iii=0
for /L %%a in (1,1,129) do for %%b in (!iii!) do for /f %%c in ("!$$$:~%%b,1!") do (
set "CMD_FOR=!CMD_FOR!for /L %%%%c in (0,1,1) do "
set CMD_OUT=!CMD_OUT!%%%%c
set /a iii+=1
)
copy nul out.txt >nul
echo "%CMD_FOR%>>out.txt echo %CMD_OUT%"
%CMD_FOR%>>out.txt echo %CMD_OUT%
pause&exit /b
for /L 129個でやってみた
流石に途中で止めたけど以下で問題無く動いているようだから for の段数自体に制限はなさそう
文字数制限は過去ログで set が8190文字とか見たような
cmd.exe が1度にパース出来る文字数なのか setコマンドの制限なのかは分からないけど前者ならそこが限界になるね
@echo off
setlocal enabledelayedexpansion
set $$$=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$+-/:@[]_{}。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚'\
set iii=0
for /L %%a in (1,1,129) do for %%b in (!iii!) do for /f %%c in ("!$$$:~%%b,1!") do (
set "CMD_FOR=!CMD_FOR!for /L %%%%c in (0,1,1) do "
set CMD_OUT=!CMD_OUT!%%%%c
set /a iii+=1
)
copy nul out.txt >nul
echo "%CMD_FOR%>>out.txt echo %CMD_OUT%"
%CMD_FOR%>>out.txt echo %CMD_OUT%
pause&exit /b
766デフォルトの名無しさん
2022/05/06(金) 05:51:24.45ID:QgRBAFzX Dracura配色にしたら目に優しくオサレになった
https://draculatheme.com/contribute
PowerShellとかWindows Terminalとかのテーマもいろいろある
https://draculatheme.com/
https://draculatheme.com/contribute
PowerShellとかWindows Terminalとかのテーマもいろいろある
https://draculatheme.com/
767デフォルトの名無しさん
2022/05/08(日) 05:37:23.76ID:L9rI0dwl お助けくださいm(vv)m
タスクスケジューラにAdministrators最上位権限の6時間おき無期限タスクを設置しました
エラーなども解決し、やっと定刻に指定したタスクを実行するよう調整出来たのですが、対象となるregファイルの起動≒実行ではなく「次のプログラムを使って開く」的なダイアログ表示になってしまいます
OS上ではダブクリで処理していた内容なので盲点でした
スケジューラでregファイルを使用しレジストリの改変を定期的に行う場合、操作の記述はどのようにすれば宜しいでしょうか?
それか、当該regファイルを実行するためのバッチファイル記述を願いたいです
スケジューラでバッチ実行を指定する方法はネット上にも複数ありました
reg系は散々ググっても検索に出ないのが辛いですね
アドバイスお願いしますm(vv)m
タスクスケジューラにAdministrators最上位権限の6時間おき無期限タスクを設置しました
エラーなども解決し、やっと定刻に指定したタスクを実行するよう調整出来たのですが、対象となるregファイルの起動≒実行ではなく「次のプログラムを使って開く」的なダイアログ表示になってしまいます
OS上ではダブクリで処理していた内容なので盲点でした
スケジューラでregファイルを使用しレジストリの改変を定期的に行う場合、操作の記述はどのようにすれば宜しいでしょうか?
それか、当該regファイルを実行するためのバッチファイル記述を願いたいです
スケジューラでバッチ実行を指定する方法はネット上にも複数ありました
reg系は散々ググっても検索に出ないのが辛いですね
アドバイスお願いしますm(vv)m
768デフォルトの名無しさん
2022/05/08(日) 06:42:10.44ID:21iaPdPG >>767
単に regedit %1 すりゃいい話じゃなくて?
単に regedit %1 すりゃいい話じゃなくて?
769デフォルトの名無しさん
2022/05/08(日) 07:07:27.41ID:L9rI0dwl レジストリ等は長年平気で触っているくせに、コマンド的な知識・技量ともに不足しており、コピペやポン入れ以外の微調整が出来ませんでした
XPか7時代に作った
----------
@echo off
echo.
echo ==========================================
echo 「高速スタートアップを有効にする」の無効化
echo ==========================================
echo.
rem -----「高速スタートアップを有効にする」の無効化 -----
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Power" /v "HiberbootEnabled" /t REG_DWORD /d "0" /f
pause
exit
----------
を発見し、そのままreg用バッチとして該当箇所コピー入れ替え→余裕のタスク発動→regも無事改変されました
元のソースがあるからこその応用ですが、スレをお騒がせして申し訳ありませんm(vv)m
コピペ文化は自業自得ながらも辛いものがありますね
XPか7時代に作った
----------
@echo off
echo.
echo ==========================================
echo 「高速スタートアップを有効にする」の無効化
echo ==========================================
echo.
rem -----「高速スタートアップを有効にする」の無効化 -----
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Power" /v "HiberbootEnabled" /t REG_DWORD /d "0" /f
pause
exit
----------
を発見し、そのままreg用バッチとして該当箇所コピー入れ替え→余裕のタスク発動→regも無事改変されました
元のソースがあるからこその応用ですが、スレをお騒がせして申し訳ありませんm(vv)m
コピペ文化は自業自得ながらも辛いものがありますね
770デフォルトの名無しさん
2022/05/10(火) 23:03:26.14ID:gcxSlYEt フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、
業務委託契約の求職者と企業をマッチング
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破
中小企業で進む副業人材の採用、96%が継続採用を希望
茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、
業務委託契約の求職者と企業をマッチング
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破
中小企業で進む副業人材の採用、96%が継続採用を希望
茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
771デフォルトの名無しさん
2022/05/19(木) 11:35:25.20ID:aWExf7Ea C:\Freesoftというフォルダにtest.rarというファイルが置いてあって、
それをwinrarの64bit版で
Z:のルートにフォルダを作らずそのまま解凍させるというようなbatファイルが欲しいのですが
誰か記述例を教えてください。
当方batファイルに関しては無知です
それをwinrarの64bit版で
Z:のルートにフォルダを作らずそのまま解凍させるというようなbatファイルが欲しいのですが
誰か記述例を教えてください。
当方batファイルに関しては無知です
772デフォルトの名無しさん
2022/05/19(木) 12:12:20.87ID:aAlRquen773デフォルトの名無しさん
2022/05/19(木) 14:15:05.74ID:Rn3o2leA Ruby スクリプト内で、7-zip を呼び出す場合、
dest_dir に、a フォルダが作られて、その中に再帰的に階層が作られる。
ここで、aフォルダが作られず直接、tmp フォルダ以下へ展開されるオプションは、7-zipでは探せなかった
zip7_exe = "C:/Program Files/7-Zip/7z.exe"
archive_path = "C:/Users/Owner/Documents/test/a.zip"
dest_dir = "C:/Users/Owner/Documents/tmp"
# Program Files には半角空白があるので、"〜" で囲む。
# x で解凍する。-o で解凍先のフォルダを指定する
puts %x("#{ zip7_exe }" x -o#{ dest_dir } #{ archive_path }) # 解凍
つまり、コマンドプロンプトでは、
"C:/Program Files/7-Zip/7z.exe" x -oC:/Users/Owner/Documents/tmp C:/Users/Owner/Documents/test/a.zip
ここでの注意点は、Program Files には半角空白があるので、"〜" で囲む事と、
-oC:/ の、-oとC:/の間に、空白を入れない事
ここで、C:/Program Files/7-Zip を、Windows のユーザー環境変数パスに追加すれば、
絶対パス無しで、7z コマンドを使えるので、
7z x -oC:/〜 C:/〜 と書ける
もし、xではなく、e オプションを使うと、
dest_dirにアーカイブの階層をフラットにして、すべてのフォルダ・ファイルを展開する!
フォルダ構成を無視して解凍する!
限定的な使い方だが、アーカイブが再帰的なフォルダ構成ではない場合には、
これで、aフォルダが作られず直接、dest_dirフォルダへ展開できる!
RAR は試していないが、a.zipの代わりに、a.rarとすれば、
拡張子から自動判別して、解凍できると思う
dest_dir に、a フォルダが作られて、その中に再帰的に階層が作られる。
ここで、aフォルダが作られず直接、tmp フォルダ以下へ展開されるオプションは、7-zipでは探せなかった
zip7_exe = "C:/Program Files/7-Zip/7z.exe"
archive_path = "C:/Users/Owner/Documents/test/a.zip"
dest_dir = "C:/Users/Owner/Documents/tmp"
# Program Files には半角空白があるので、"〜" で囲む。
# x で解凍する。-o で解凍先のフォルダを指定する
puts %x("#{ zip7_exe }" x -o#{ dest_dir } #{ archive_path }) # 解凍
つまり、コマンドプロンプトでは、
"C:/Program Files/7-Zip/7z.exe" x -oC:/Users/Owner/Documents/tmp C:/Users/Owner/Documents/test/a.zip
ここでの注意点は、Program Files には半角空白があるので、"〜" で囲む事と、
-oC:/ の、-oとC:/の間に、空白を入れない事
ここで、C:/Program Files/7-Zip を、Windows のユーザー環境変数パスに追加すれば、
絶対パス無しで、7z コマンドを使えるので、
7z x -oC:/〜 C:/〜 と書ける
もし、xではなく、e オプションを使うと、
dest_dirにアーカイブの階層をフラットにして、すべてのフォルダ・ファイルを展開する!
フォルダ構成を無視して解凍する!
限定的な使い方だが、アーカイブが再帰的なフォルダ構成ではない場合には、
これで、aフォルダが作られず直接、dest_dirフォルダへ展開できる!
RAR は試していないが、a.zipの代わりに、a.rarとすれば、
拡張子から自動判別して、解凍できると思う
774デフォルトの名無しさん
2022/05/20(金) 09:45:16.10ID:lLlVMTfc >>772
C:\Program Files\WinRARのフォルダの中にWinRAR.exeがありますが
別に7zipででもzipでもrarでもかまわないという感じです。
>>773
ありがとうございます。
すいませんがこちらの勘違いで置き場所を間違ってたので変更させてください。
Yドライブ(外付けハードディスク)のsoftというフォルダにabc.zip(ファイル名は仮の名前)
というファイルがあるとして
「Y:\soft/abc.zip」
このabc.zipをZドライブ(RAMディスク)上にbatファイルダブルクリックで解凍したいです。
解凍の際にそのまま解凍でもフォルダを作ってそこに解凍ででもどちらでもかまわないです。
7zipはさっきインストールしました。
7zipと winrarはともに一時ファイルの作成場所をZのtempフォルダに指定してあります
「Z:\rartmp」←こんな感じ。
この場合のbatファイルはどうなりましょうか?
なぜbatで解凍したいかというと、某フリーソフトなんですが更新が頻繁にあって、更新の通知に対してYESを選ぶと小さいサイズの
ファイルを6000個以上書き込むみたいで、更新するのに20分ぐらいかかります。
それだったら更新の通知が来るたびにキャンセルして公式サイトから最新版のzipファイルを入手して
RAMディスク上に解凍したのを起動させたほうが、短い時間ですむんじゃないかという考えです
C:\Program Files\WinRARのフォルダの中にWinRAR.exeがありますが
別に7zipででもzipでもrarでもかまわないという感じです。
>>773
ありがとうございます。
すいませんがこちらの勘違いで置き場所を間違ってたので変更させてください。
Yドライブ(外付けハードディスク)のsoftというフォルダにabc.zip(ファイル名は仮の名前)
というファイルがあるとして
「Y:\soft/abc.zip」
このabc.zipをZドライブ(RAMディスク)上にbatファイルダブルクリックで解凍したいです。
解凍の際にそのまま解凍でもフォルダを作ってそこに解凍ででもどちらでもかまわないです。
7zipはさっきインストールしました。
7zipと winrarはともに一時ファイルの作成場所をZのtempフォルダに指定してあります
「Z:\rartmp」←こんな感じ。
この場合のbatファイルはどうなりましょうか?
なぜbatで解凍したいかというと、某フリーソフトなんですが更新が頻繁にあって、更新の通知に対してYESを選ぶと小さいサイズの
ファイルを6000個以上書き込むみたいで、更新するのに20分ぐらいかかります。
それだったら更新の通知が来るたびにキャンセルして公式サイトから最新版のzipファイルを入手して
RAMディスク上に解凍したのを起動させたほうが、短い時間ですむんじゃないかという考えです
775773
2022/05/20(金) 12:29:11.62ID:SIlSZC9T 773 に書いてあるけど、
Program Files には半角空白があるので、実行ファイルの絶対パスを、"〜"で囲む
"C:/Program Files/WinRAR/WinRAR.exe" 引数1 引数2
ここで、C:/Program Files/WinRAR を、Windows のユーザー環境変数パスに追加すれば、
絶対パス無しで、WinRAR コマンドを使えるので、
「WinRAR 引数1 引数2」と書ける
ダブルクリックで起動したいのなら、
デスクトップにショートカットでも作れば?
例えば、773 のRuby スクリプトが、
C:/Users/Owner/Documents/Ruby/script.rb にある場合、
ショートカットのリンク先
C:\Windows\System32\cmd.exe /k "ruby C:/Users/Owner/Documents/Ruby/script.rb"
これは、コマンドプロンプト・cmd.exe を起動して、
ruby コマンドで、script.rbを実行する
(注意! 書き込めないので、cmd を英小文字に変換して下さい)
他には、VBScript でも、ダブルクリックで起動できたと思う。
漏れは、bat は知らないから、バッチファイルをダブルクリックで起動できるかどうかは知らない
7-zip のオプションで、一時ファイルの作成場所の指定も、見たような気もする。調べて下さい
ただ、7-zipの7z.exe はコマンド用じゃなく、画面操作用だから、
必ず、解凍先フォルダは空の状態で始めて下さい!
そこにファイルがあると、同じ名前の場合に、上書きしますかとか聞かれて、コマンドが止まる
だから本当は、7-zipのコマンド用実行ファイルを使った方がよいかも
Program Files には半角空白があるので、実行ファイルの絶対パスを、"〜"で囲む
"C:/Program Files/WinRAR/WinRAR.exe" 引数1 引数2
ここで、C:/Program Files/WinRAR を、Windows のユーザー環境変数パスに追加すれば、
絶対パス無しで、WinRAR コマンドを使えるので、
「WinRAR 引数1 引数2」と書ける
ダブルクリックで起動したいのなら、
デスクトップにショートカットでも作れば?
例えば、773 のRuby スクリプトが、
C:/Users/Owner/Documents/Ruby/script.rb にある場合、
ショートカットのリンク先
C:\Windows\System32\cmd.exe /k "ruby C:/Users/Owner/Documents/Ruby/script.rb"
これは、コマンドプロンプト・cmd.exe を起動して、
ruby コマンドで、script.rbを実行する
(注意! 書き込めないので、cmd を英小文字に変換して下さい)
他には、VBScript でも、ダブルクリックで起動できたと思う。
漏れは、bat は知らないから、バッチファイルをダブルクリックで起動できるかどうかは知らない
7-zip のオプションで、一時ファイルの作成場所の指定も、見たような気もする。調べて下さい
ただ、7-zipの7z.exe はコマンド用じゃなく、画面操作用だから、
必ず、解凍先フォルダは空の状態で始めて下さい!
そこにファイルがあると、同じ名前の場合に、上書きしますかとか聞かれて、コマンドが止まる
だから本当は、7-zipのコマンド用実行ファイルを使った方がよいかも
776デフォルトの名無しさん
2022/05/20(金) 20:38:33.57ID:8qofalUL バカの話は必ず長い (宝島社新書) 櫻井 弘
777デフォルトの名無しさん
2022/05/20(金) 20:50:08.11ID:zxJBX/+G と、バカが申しております。
778デフォルトの名無しさん
2022/05/20(金) 23:38:55.76ID:MePC0rUW バカって言う人は自分がバカなんだよ?
幼稚園児でも知ってるのに
幼稚園児でも知ってるのに
779デフォルトの名無しさん
2022/05/21(土) 06:37:24.42ID:55Td3nWK と、幼稚園児が申しております。
780デフォルトの名無しさん
2022/05/21(土) 06:53:52.00ID:/PQRaHnB ブログでやれよって感じ
781デフォルトの名無しさん
2022/05/22(日) 18:17:57.65ID:RDTYjvSl rarを解凍する機会なんてそんなないのにbatが欲しい?しかもbatファイルに関しては無知?妙だな…
782デフォルトの名無しさん
2022/05/23(月) 07:47:47.45ID:Lvn387tn forのin部で wmic を使って文字列取得しようとするとdo以後のコマンド類がバグる
for /f "tokens=2 delims==" %%a in ('wmic process where "name=\"hoge.exe\"" get CommandLine /value 2^>nul^|find "CommandLine"') do set RUNEXE=%%a
と最小限に留めたらecho on でプロンプトが削れて表示は少しおかしいものの一応動作はした
でも「バグってるものがたまたま動いてるだけ」の状態が心情的に嫌なので代替手段があれば教えて欲しい
やりたい事は特定のexeが実行中か否か
D:\app\a\hoge.exe が実行中かどうかを調べたいとして
D:\app\b\hoge.exe のような別ディレクトリにある同名のexeは実行中でもOK
tasklistだとhoge.exeが稼働してるかどうかは調べられるけどどのディレクトリのモノまでかは特定不能のよう
for /f "tokens=2 delims==" %%a in ('wmic process where "name=\"hoge.exe\"" get CommandLine /value 2^>nul^|find "CommandLine"') do set RUNEXE=%%a
と最小限に留めたらecho on でプロンプトが削れて表示は少しおかしいものの一応動作はした
でも「バグってるものがたまたま動いてるだけ」の状態が心情的に嫌なので代替手段があれば教えて欲しい
やりたい事は特定のexeが実行中か否か
D:\app\a\hoge.exe が実行中かどうかを調べたいとして
D:\app\b\hoge.exe のような別ディレクトリにある同名のexeは実行中でもOK
tasklistだとhoge.exeが稼働してるかどうかは調べられるけどどのディレクトリのモノまでかは特定不能のよう
783デフォルトの名無しさん
2022/05/23(月) 07:58:02.47ID:Lvn387tn forで取らずにリダイレクトして一旦TMPファイルに書き出せば良いんだろうけどなんか負けた気がするのでそれは最終手段
784デフォルトの名無しさん
2022/05/23(月) 09:22:19.13ID:vgqZRn8w パイプを犯人扱いしてfor内でifしちゃうのもありかな?
あと細かいけど"set RUNEXE=%%~a"としないとスペースとかで死ぬ
あと細かいけど"set RUNEXE=%%~a"としないとスペースとかで死ぬ
785デフォルトの名無しさん
2022/05/23(月) 09:32:45.04ID:Lvn387tn786デフォルトの名無しさん
2022/05/23(月) 12:58:34.94ID:Lvn387tn 自己解決
> %%~aが利かない
はケツにスペース入ってたから
バグるのは文字コード上の問題のよう
http://scripting.cocolog-nifty.com/blog/2009/09/wmic-6efe.html
パイプだと改行コードがおかしくなるだけらしいけどその後のコマンド類がおかしくなるのは不明
URL先の説明にあるように直接ファイルへリダイレクトしてtypeで読めばバグらないようになった
wmic process where "name='hoge.exe'" get CommandLine 2>nul >$tmp.txt
for /f "delims=" %%a in ('type $tmp.txt^|find ":"') do for %%b in (%%a) do set "s=%%~b"
> %%~aが利かない
はケツにスペース入ってたから
バグるのは文字コード上の問題のよう
http://scripting.cocolog-nifty.com/blog/2009/09/wmic-6efe.html
パイプだと改行コードがおかしくなるだけらしいけどその後のコマンド類がおかしくなるのは不明
URL先の説明にあるように直接ファイルへリダイレクトしてtypeで読めばバグらないようになった
wmic process where "name='hoge.exe'" get CommandLine 2>nul >$tmp.txt
for /f "delims=" %%a in ('type $tmp.txt^|find ":"') do for %%b in (%%a) do set "s=%%~b"
787デフォルトの名無しさん
2022/05/23(月) 14:54:07.32ID:3pQwOKKR set RUNEXE="%%~a"
じゃろが
じゃろが
788デフォルトの名無しさん
2022/05/23(月) 17:31:28.72ID:JTigk3sw コマンドプロンプトはとても残念なので
set RUNEXE="%%~a"
echo RUNEXE: "%RUNEXE%"
とすると(%a=「t e s t」だった場合)RUNEXE: ""t e s t""と表示されるのだよ...
set RUNEXE="%%~a"
echo RUNEXE: "%RUNEXE%"
とすると(%a=「t e s t」だった場合)RUNEXE: ""t e s t""と表示されるのだよ...
789デフォルトの名無しさん
2022/05/23(月) 17:44:09.74ID:3pQwOKKR790デフォルトの名無しさん
2022/05/23(月) 17:52:18.15ID:9Kev8wRG791デフォルトの名無しさん
2022/05/23(月) 20:13:36.87ID:kx8uWZPf 非推奨烙印はcmdを滅ぼそうとしているMS内の一派の仕業だから気にするな
vbsやpowershellのようにcomの使える言語であれば同じことできるから要らんといえば要らんのだがな
vbsやpowershellのようにcomの使える言語であれば同じことできるから要らんといえば要らんのだがな
792デフォルトの名無しさん
2022/05/23(月) 22:36:34.02ID:vE3vs/4c 自分の周りではあまり知られてないようなのだけど、
setは代入文全体を"〜"で括るとうまくいく場合が多い。(確実ではない)
cmd /v:on
set "aaa=(bbb|ccc)<ddd"
echo aaa=[!aaa!]
↓
aaa=[(bbb|ccc)<ddd]
引数でパスを受け取るバッチファイルでよく使う。
「〜」と「"〜"」のどちらの形式で指定されても同じ値を得られる。
@echo off
setlocal EnableDelayedExpansion
set "FilePath=%~1"
echo FilePath=[!FilePath!]
exit /b
setは代入文全体を"〜"で括るとうまくいく場合が多い。(確実ではない)
cmd /v:on
set "aaa=(bbb|ccc)<ddd"
echo aaa=[!aaa!]
↓
aaa=[(bbb|ccc)<ddd]
引数でパスを受け取るバッチファイルでよく使う。
「〜」と「"〜"」のどちらの形式で指定されても同じ値を得られる。
@echo off
setlocal EnableDelayedExpansion
set "FilePath=%~1"
echo FilePath=[!FilePath!]
exit /b
793デフォルトの名無しさん
2022/05/24(火) 15:42:40.62ID:DHD4MJfY 好みだろうけど
常に値はリテラルな""に埋め込まれたものと考えることにした
なんらかの一貫性を貫くのが精神衛生上よい
常に値はリテラルな""に埋め込まれたものと考えることにした
なんらかの一貫性を貫くのが精神衛生上よい
794デフォルトの名無しさん
2022/05/24(火) 16:01:20.85ID:EZq8VYJv 不自由でも一貫性を好む者って多くの事に対応出来ない低脳だと言ってるようなもの
最適を選ばずワンパターンな手法に頼り用いたがる思考停止した老害へと一直線
最適を選ばずワンパターンな手法に頼り用いたがる思考停止した老害へと一直線
795デフォルトの名無しさん
2022/05/24(火) 16:09:51.54ID:DHD4MJfY むしろワンパな%~の剥ぎ取りを信頼してるのが気になったんだが
ダメ文字入っててもサブストリング置換で最後と最初の文字削ったり頭を柔らかく持とう
ダメ文字入っててもサブストリング置換で最後と最初の文字削ったり頭を柔らかく持とう
796デフォルトの名無しさん
2022/05/24(火) 16:12:20.60ID:fGpRFhuy 文字列の置換抜き出しを考えてるなら常に""の中の状態にするのは正解だと思う
797デフォルトの名無しさん
2022/05/24(火) 16:32:08.01ID:wIwv7WB3 バッチには(残念ながら)絶対はないから、すぐに展開せず要時まで自由度を残す習慣は大事だと思う
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【悲報】高市早苗を妄信している今の日本人見ると80年前も市民は進んで戦争協力してたんだって理解出来るよね🥺 [616817505]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
