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

■ このスレッドは過去ログ倉庫に格納されています
2018/11/21(水) 14:52:07.84ID:v84I4o+L
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1424858999/
【.cmd】 バッチファイルスクリプト %12 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1489207631/

それ以前の過去スレ
%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://pc12.2ch.net/test/read.cgi/tech/1197881068/
%1  http://pc11.2ch.net/test/read.cgi/tech/1178281991/
2019/11/21(木) 11:16:31.45ID:LvODftpp
簡単だったら早く教えろよな
キレちゃうぞこのやろう
2019/11/21(木) 11:47:37.77ID:xinrmZtD
PSで簡単にできたからもういいわ
2019/11/21(木) 12:46:53.45ID:7xPdmDWo
>>572
行頭が数字なのにeolの指示は無意味
delimsを数字にしないとまずいし
他人のバッチを鵜呑みにして理解していないバッチ
2019/11/21(木) 15:03:03.19ID:8WRatKwZ
EUCテキストだから、ファイル名をそのままfindstrに突っ込むのは無理だな
2019/11/21(木) 16:04:24.91ID:7xPdmDWo
>>579 これでどうかな?
@echo off
chcp 20932
set s="%~1"
set "a=key = value"
set "b=[version]"
call :x > "%~2"
goto :eof
:x
for /f "delims=" %%i in ('findstr /n "^" %s%') do (
set c=%%i
setlocal enabledelayedexpansion
set d=!c:*:=!
if /i !d!==!b! echo.!a!
echo.!d!
endlocal)
2019/11/21(木) 16:15:57.27ID:7xPdmDWo
>>580 を実行前は chcp 932
2019/11/21(木) 20:46:01.60ID:8WRatKwZ
EUCじゃなくてUnicode(UTF16)だった
583デフォルトの名無しさん
垢版 |
2019/11/21(木) 22:34:33.13ID:2C4HvUZs
コード変換ソフトがないと、無理かな。
2019/11/21(木) 22:42:46.40ID:8WRatKwZ
いやfindstrにファイル名渡さないようにすればそれでいい
'type %s%^|findstr /n ^^'
cmd /u /c hoge.bat in.txt out.txt
2019/11/21(木) 22:47:11.20ID:8WRatKwZ
^^じゃダメだった
^^^^か"^"だね
2019/11/21(木) 23:14:31.55ID:t93OqxgW
>>568
Ruby で作った

text = <<"EOT"
[version]
a
[version]
EOT

re = /^\[version\]$/

text.gsub!( re ) { |matched| "key = value\n#{ matched }" } # 置換
puts text

出力
key = value
[version]
a
key = value
[version]
2019/11/21(木) 23:21:01.84ID:8WRatKwZ
ただBOMが付かないね
BOMが無いと使えないかどうかは怖いので試してない
2019/11/22(金) 00:14:32.18ID:UfmR8W/F
>>587
@echo off & if "%~1"==":x" goto x
set "a=key = value" & set "b=[version]" & set s="%~1"
chcp 65000 > nul
cmd/u/c "set/p a=+/v8-<nul"> "%~2"
chcp 932 > nul
cmd/u/c "%~0" :x >> "%~2" & goto :eof
:x
for /f "delims=" %%i in ('type %s% ^| findstr/n/r .*') do (set c=%%i
setlocal enabledelayedexpansion
set d=!c:*:=!& if /i !d!==!b! echo.!a!
echo.!d!
endlocal)
2019/11/22(金) 00:20:53.00ID:UfmR8W/F
>>588
あらかじめbom付き空テキスト用意しておけば
もっと簡単なバッチになるけどね
2019/11/22(金) 02:00:26.84ID:iZoP+Nd2
FINDSTR: // は無視されました。

/n /rとするか、/nだけにするか
2019/11/22(金) 02:02:44.42ID:iZoP+Nd2
/nrで良いか
2019/11/22(金) 02:47:17.93ID:UfmR8W/F
そうだな。直ぐ消えるので気付かなかった
動作はするようだが
スペース入れた方が無難だね
2019/11/22(金) 08:47:38.56ID:wKGQ5j7v
rubyきちがいきてるね
2019/11/22(金) 09:49:43.81ID:VuiommTl
無視無視
2019/11/22(金) 12:09:43.22ID:f2CG40En
point of no return
2019/11/23(土) 16:13:10.37ID:x4sN5Hm0
質問した人は登場しないね
ひょっとして>>577が最後?
2019/11/23(土) 16:50:58.80ID:xep2e/TT
awkが手軽で楽そうだがユニコードできたっけ?
2019/11/25(月) 13:59:48.96ID:6F6igyhI
WindowsならPSで良いだろ
文字コードもドトネトで扱える範囲で指定できるし
2019/11/26(火) 10:19:19.63ID:NW9y+uW0
用途:エクセルにある複数の画像URLを、指定したフォルダにDLさせたい
コマンドでやりたい理由:
ダウンロードソフトは一つのフォルダに全部DLするか、
一つのURLを開いてから一つづつDL先を指定するか、
URLをフォルダ構造に分解して保存するからDL後探すのが面倒で嫌
DownloadThemALLとか、DL雨とか、Tab Saveとか、Image Downloader…
全部ダメ;

bitsadmin /transfer [name] [URL][DL path]
bitsadmin /transfer [name] [URL][DL path]
bitsadmin /transfer [name] [URL][DL path]
…こんな風に並べて書いたところ、リストの最後らへんの二つぐらいを除いて
PRIORITY:NORMAL FILES:1/1 BYTES:0/0 (0%)
Transfer complete.

でDL開始する前に次の行にいってしまうようです。しかも0バイトの指定したファイルを作ってしまいますw
MS見ると複数やるなら1行に続けろとあるので
bitsadmin /transfer [name] [URL] [DL path] [name2] [URL2][DL path2]
としたが状況変わらず。

どうしたらいいでしょうか。timeoutでは変わりませんでした。
2019/11/26(火) 10:20:48.75ID:NW9y+uW0
>並べて書いた
batファイルにしてからダブクリのため
2019/11/26(火) 12:23:55.89ID:ImxGWCjG
httpのみでhttps未対応だしリファラやUA見られてても落ちないと思う
ダウンローダーはその辺勝手にやってくれてるんだよ
取り敢えずこれ真似してforでlist読んでやってみれば?
ttps://automationlabo.com/wat/?p=570
2019/11/26(火) 12:32:29.83ID:NW9y+uW0
>>601
ありがとう、そこのサイトみてやってるんだ
ちなみに今はHTTPS対応してるようで
ttps://maku77.github.io/windows/cmd/download.html
ttps://qiita.com/uratatsu/items/d77152ca121d0b779464
一件づつコピペだったらできるんだ

ダウンローダーについては気軽にスレで聞いてるけど、
画像ごとにフォルダを指定して一気に保存ができるものはないみたい
昔懐かしいirvineができる的な噂見てやってみたけど、フォルダ指定ができないorz
2019/11/26(火) 13:46:11.40ID:ISv3uuWx
しらんけど
前の行の処理が完了する前に次の物が始まるのがまずいなら
Call でいんじゃないの?
2019/11/26(火) 14:15:56.61ID:ImxGWCjG
call または start "" /wait コマンド
2019/11/26(火) 14:16:12.39ID:JyI6kWkc
特定に箇所にダウンロードして、ダウンロードが終わったら移動するんじゃダメなの?
なんでダウンロードするアプリにフォルダ指定の機能まで期待するんだろう
頭硬いのかな
2019/11/26(火) 14:22:21.16ID:Rh/VLF1h
bitsadmin の代わりに cURL を試してみては
2019/11/26(火) 14:40:23.78ID:jwtMC5+Q
>>599
ジョブにaddfile/addfilesetオプションでurl追加すればできるみたいだけど
2019/11/26(火) 14:41:21.48ID:ISv3uuWx
たしかにそれぞれのファイルのフォルダ指定をすること自体がめんどくさそう
ダウンロードフォルダにその人が望む各保存先フォルダのショートカットおいてまとめて突っ込む方が楽そう
2019/11/26(火) 14:51:14.37ID:NW9y+uW0
pushd %~dp0
for /f "tokens=1-3" %%A in (list.txt) do (
bitsadmin /TRANSFER FILEDOWNLOAD %%B %~dp0\%%A\%%C
)
echo
listの内容
[dir] [url] [ファイル名]

ダメでした…%%Aで留めれば行けるけど、他のフォルダにいれたいやつを上書きしちゃう
curl…Linuxコマンドだと思ってスルーしていたけど調べてみます。thx

>>605
100も200もあるURLごとのフォルダからぽちぽち移動できるもんならやればいいよ
DownloadThemALLとか、古いFirefoxでしか動かんけどScrapbookとか、あなたが
言うような奴ならごまんとある。
私はそれはやってられんから他の方法探してます。
hogehoge.jp/moemoechan/hogenull/img/image/hoge-hoge-hoge-hoget.jpg
というURLをそのままフォルダにされても、今回の場合は探し出すのが大変なんだよ、
ファイルに行くまでに何回クリックいる?×100だよやりたいならどうぞ私は嫌ですw
(単なるスクラップならせいぜい1サイトくらいだからむしろそれでいい)

つか、あなたのそのやり方やるぐらいなら、URLのリストをいっこづつコピペで
開いてブラウザから保存したいフォルダにD&Dしたほうが何十倍も速いぞたぶん。
だってDLしたあとで探す手間いらないですよね?
2019/11/26(火) 14:55:31.49ID:JyI6kWkc
>>609
>だってDLしたあとで探す手間いらないですよね?

なにを探すの?
空のディレクトリに一個だけダウンロードしたらmoveするだけじゃん
しかもダウンロードするファイル名分かってるんだろ?
まとめてダウンロードしてからでも人間が探す必要なんかないじゃん
ダウンロードディレクトリにあるんだから
脳みそ足りて無くない?
2019/11/26(火) 14:59:19.90ID:NW9y+uW0
>>607
!!
調べてみます!

まあそりゃねぇ
管理ナンバー URLっていう100個のリストにある画像集める必要があって
素直にそのURLをブラウザで開いてD&Dもしてましたよ…けど開いてる時間すら
面倒になってきまして…
ダウンローダーいろいろ探したけど、ブラウザのダウンロードフォルダ固定とか
ダウンロードする画像ごとにフォルダ指定しろダイアログとか、そーじゃねーよとw
もうそのいちいちダイアログがうぜえwでも振り分けずぜんぶいっしょくたも困る。
で、GoogleスプレッドでIMPORTXMLで画像リスト出していまここって感じ。
599の状態でビャーってなればよかったのだが。(もっといい方法あったらそっちがいいけど!)
2019/11/26(火) 15:05:17.28ID:NW9y+uW0
>>610
これが見えないですか。そうですか。
>hogehoge.jp/moemoechan/hogenull/img/image/hoge-hoge-hoge-hoget.jpg
>というURLをそのままフォルダにされても、今回の場合は探し出すのが大変なんだよ、

元々は
123 hogehoge.jp/moemoechan/hogenull/tio/hoge-hoge-hoge-hoget.html
124 hogehoge.jp/moemoechan/hogenull/star/hoge-hoge-hoge-hoget.html
125 hogehoge.jp/moemoechan/hogenull/maru/s/hoge-hoge-hoge-hoget.html
126 hogehoge.jp/moemoechan/hogenull/otto/s/hoge-hoge-hoge-hoget.html
というエクセルのファイルにある各URLのにある画像をそれぞれ分けたい、ということ。
ちなみにこれ4つだからぽちぽちやってもいいんだけどさ…100行あるとしたらどう?w
2019/11/26(火) 15:25:21.93ID:XdTMGSyO
batで外部プログラムの実行完了まで待つ呼び出し方法は
start /wait
って上で誰かが言ってるだろ
2019/11/26(火) 15:33:34.59ID:ISv3uuWx
ツリー上に保存しなけりゃいいし
ダウンロードフォルダのルートで*でサブフォルダ含めて検索してもすぐまとめて表示されるしなあ
2019/11/26(火) 15:49:02.22ID:NW9y+uW0
ツリーに保存しないとダメだからそうしてるんだけど。
この管理番号の画像これですよーと明示できなければならないからリストがあるわけで。
必ず4つ、必ず5つならDL時即時リネーム連番にしてもいいけど…3しかなかったり6あったりする
それを検索するにしても画像リストと照合しながら?工程増えすぎ。元の手順より面倒になってもw

waitはダメでした。
trancefar 〜
wait
trancefar ~
は使い方間違ってますか?
trancefar 〜複数URL
wait
もだめでした…
2019/11/26(火) 15:54:58.38ID:SASMXjiT
start "" /wait bitsadmin
でしょ
2019/11/26(火) 15:56:32.80ID:ISv3uuWx
いちいち一個ずつ保存先指定するより楽だよ
検索っていっても保存先フォルダことにダウンロードすれば*でやりゃいい
2019/11/26(火) 16:10:59.88ID:XdTMGSyO
とにかくダウンロードが正常に終わるようにならないと先に進めないだろ
ダウンロード時にフォルダが決まるならそれで問題解決だし
外部ダウンローダを使うのなら、落としたファイルとurlとの対応が取れるのかが問題
それが可能(例えばファイル名が行番号になってるとか)なら
落とした後にファイルを対応するフォルダに移動すればいい
もちろんbat等の自動化で
2019/11/26(火) 16:20:26.70ID:ImxGWCjG
start "" /wait bitsadmin /TRANSFER FILEDOWNLOAD %%B %~dp0\%%A\%%C
urlに&とか%は無いの?
2019/11/26(火) 16:26:58.84ID:NW9y+uW0
>>617
それ、ブラウザでURL開いて、保存先フォルダ開いてD&Dのほうが早いよ?
今時のブラウザ、コピペと同時に開くんだから。

>>618
それな;

>>616

そういう使い方になるのか!ありがとうございます!
でも空ファイルだったw
Dirとmdで生きてるのでもう脳みそ煮えてますわ…
2019/11/26(火) 16:34:10.52ID:NW9y+uW0
>>619
ある。%20とか?とか。
ttps://hoge.hoge.com/foto/img/MARC%20MAX/MARC%20MAX-20191003123-A-12345.jpg?123456
ttps://hoge.hoge.com/foto/img/MARC%20MAX/MARC%20MAX-20191003123-A-12346jpg?1234
こんな感じ。
bitsadmin~を一つだけ書いた場合はちゃんと動作するから大丈夫な・・・
えっ??まさか%%
2019/11/26(火) 16:50:52.29ID:ISv3uuWx
>>620
一個ずつドラッグドロップする気?
2019/11/26(火) 16:51:59.31ID:ISv3uuWx
>>618
ダウンローダーなら正常に終わるでしょ
2019/11/26(火) 16:57:32.34ID:XdTMGSyO
>>623
一般的なダウンローダなら、urlの末尾がファイル名になるが
名前の重複も多く起き、その場合、ダウンローダは自動的にリネームする
aaa.jpg, aaa(1).jpgのように
しかも(1)が付くのは早くダウンロードが終わったものでリストの上から順というわけでもない
これとリストにあるurlとの対応をとるのは大変だと思わん?
2019/11/26(火) 17:03:32.54ID:JyI6kWkc
>>624
結局一つずつダウンロードする必要があるだろ?
やっぱり何を探せなないのが全くわからんなぁ
2019/11/26(火) 17:04:08.93ID:ISv3uuWx
>>624
重複はツリー上で保存すりゃ起きない
2019/11/26(火) 17:07:32.81ID:NW9y+uW0
>>622
その方が早いと言ってます。どっちが早いか試してみたら?
https://www.yahoo.co.jp/ ロゴとその左右のアイコン
https://www.rakuten.co.jp/ ロゴから購入履歴までのアイコン
https://www.nikkei.com/ ロゴと、その下の写真3つ
DL先のフォルダ開く、URLひらく、D&D 3工程
URLをまとめてダウンローダーに入れる、ダウンロードフォルダにまとまって入ってるから開く、移動先のフォルダを開く、該当のファイルを検索する D&D 5工程
フォルダごとにURLをダウンローダーにいれる、ダウンロードフォルダにまとまって入ってるから開く、移動先のフォルダを開く、D&D 4工程
2019/11/26(火) 17:10:41.82ID:ImxGWCjG
>>621
詰み
&なら "%%~B" とすれば行けたかもだけど
バッチで%〜%のエスケープは出来なくないもののかなり面倒くさい
powershellとか行った方がいい
どうせ自動化するのなら>>612の元listから抽出してDLする方法をPSスレとかで相談してみれば?
2019/11/26(火) 17:15:21.53ID:NW9y+uW0
で、私はその3工程ですらめんどくっせーってなって、3工程とも省けんかなと考えた
#今後も同じ作業あるから、今なんとかできてると今後が楽。

ダウンローダーのダウンロード先の問題って、こうなるんだよね
tp://imepic.jp/20191126/620210
ふ、ふかい。(これはFirefoxアドオンのスクラップブック。DownloadAllThemもこういう感じ)
お気に入りのサイト見るだけならアドオンからわかるんだけど、画像を取り出すとなると
エクスプローラーに行く必要がある
2019/11/26(火) 17:15:53.07ID:ISv3uuWx
>>627
エクセルに入れてるってんだから
まとめてURL処理してるんでしょ
D&Dをファイル数分しなくちゃならんのを言ってるんだが
まとめてURL処理してるならD&Dは1回でいい
2019/11/26(火) 17:18:49.77ID:NW9y+uW0
>>628
うへwわろすwそういうことか!
Powershellはこっち以上に全くわからんな…
画像リストはGoogleスプレッドにぶんなげて作れてはいる
ありがとう
2019/11/26(火) 17:19:23.77ID:ImxGWCjG
0バイトになるのは書き込み権限とか
管理者で実行しても変わらない?
2019/11/26(火) 17:23:52.25ID:NW9y+uW0
>>632
transfarされる前に次にいっちゃって、でもファイル作れって言ってるから空のファイルつくりましたって感じに見える
transfar実行画面のBYTE:0/0のところが、いっこづつやったときはにゅーーーって動いてファイル捕れるんですが
ここが0/0のままで次を始めてしまう
Wait入れようが、Pauseいれようが、そこは同じですね
2019/11/26(火) 17:42:23.81ID:NW9y+uW0
>>631
エスケープさせてできました!!
コマンド自体もスプレッドシートに関数くんでやってるので、どこかの時点で%
を置き換えてやることにします。
ヒントありがとうございました。
みなさまもたくさんヒントありがとうございました。
2019/11/26(火) 17:50:12.00ID:XdTMGSyO
>>634
""で括ってやれば?
ダメならちょっと上のsetlocal enabledelayedexpansionを参考に

pushd %~dp0
for /f "tokens=1-3" %%A in (li.txt) do (
if not exist "%~dp0\%%A\." mkdir "%~dp0\%%A"
start "" /wait bitsadmin /TRANSFER FILEDOWNLOAD "%%B" "%~dp0\%%A\%%C"
)
2019/12/07(土) 09:30:10.75ID:/m01ABgd
>>634
おい逃げるなよ
2019/12/08(日) 23:47:18.40ID:wNkvi2te
>>636
こわいよw
もはや逃げることはできぬぞ、か。
2019/12/09(月) 14:56:56.31ID:0+3TB6cR
トレンドに#業務ハックというのが上がってた。フーン
ここにいるわるいオジサン達は徹底的に省力化して、あとは仕事するフリして過ごすようなことは
まさかしていませんよね?
2019/12/10(火) 05:01:38.65ID:CfjKoCjD
無理そうな気はしつつも質問

苗字<tab>名前<tab>年齢<tab>住所
田中<tab>太郎<tab>27<tab>大阪
山田<tab>花子<tab><tab>東京
佐藤<tab><tab>35<tab>

こんな表のテキストファイルを<tab>を区切り文字として列指定して読み込みたいんだけど
tokens=2,4
にしても連続した<tab>は一括りに扱われて山田と佐藤は対象の列がずれちゃうよね
これはもうvbsやVBAじゃないと無理ぽかな
2019/12/10(火) 07:15:07.41ID:BTxKZMwl
>>639
delimsに指定してもダメなの?
2019/12/10(火) 07:44:27.57ID:CfjKoCjD
半角スペースは文字列として扱いたいから<tab>だけを指定してるけどダメよー
2019/12/10(火) 09:16:41.59ID:3V5uc2tI
>>639
tabの間にスペースを入れてみた。
これは前処理なので、あとはお好きにどうぞ

@echo off
set "t=<tab>"
call :x > test2.txt
pause & goto :eof
:x
for /f "delims=" %%i in (test1.txt) do ( set a=%%i
setlocal enabledelayedexpansion
set a=!a:%t%%t%=%t% %t%!
set a=!a:%t%%t%=%t% %t%!
echo.!a!
endlocal)

<tab>にはタブを入力
2019/12/11(水) 01:05:38.94ID:hz4JPg2Q
おお、値の無い列には半角スペースを入れてしまうわけか
こりゃ気付かんかったサンクス
2019/12/13(金) 01:06:30.14ID:7bx1tfw6
バッチでフォルダの表示方法とかかえられないよ?
詳細にして 表示の種類に長さとか大きさとか
いれたいんだけど
それをワンクリックでやりたい

https://i-bitzedge.com/wp-content/uploads/2016/03/Search-Contextual-tab-Windows-10.jpg

名前とか日付のとこに 長さとか大きさを追加するってことね
2019/12/13(金) 01:06:50.17ID:7bx1tfw6
かえられないよの?
2019/12/13(金) 04:06:09.26ID:t9dRWycX
>>645
レジストリ値弄れば出来たと思う。
昔職場の環境統一するのに使ってた。
詳細はRegshotとかで差分とって。
バッチからはRegコマンドで設定するかRegEdit /s で読み込むかのどちらか。
2019/12/13(金) 04:07:58.73ID:t9dRWycX
>>645
設定後にShellの再起動も必要だったかも。
2019/12/13(金) 06:18:44.99ID:SOm460Ps
>>646-647
レジストリか
なるほど
ちょっと色々調べてみます
2019/12/19(木) 16:55:31.02ID:l8jrOhSU
こういうの実行するとサブフォルダのファイルでは空行ではなくピリオドが出力されるんですが何故ですか?
まあ実用上の問題は無いんですが

@echo off
for /r %%i in (*.*) do (
echo "%%~nxi"
echo.
)
pause
2019/12/19(木) 17:08:49.51ID:TZP99wd2
ピリオドとかコロンじゃなくて、カンマとかセミコロン使えばいいよ
2019/12/19(木) 17:16:19.46ID:TZP99wd2
イコールもお仲間で、この3つが特別区切り記号らしいよ
2019/12/19(木) 17:18:33.06ID:l8jrOhSU
>>650
はい、カンマを使うと問題が起きないことは確認していたのですがピリオドだと何故こうなるのか気になりました
2019/12/19(木) 17:23:09.51ID:TZP99wd2
特別区切り記号だから
2019/12/22(日) 19:05:52.87ID:DvnYZkai
/rが悪さをしてるんじゃね
サブフォルダの中でピリオドを2個にして
2019/12/23(月) 21:26:36.07ID:qZ1/nSQb
startコマンドでAPを起動後、「F11」をバッチファイルから入力するには、どう記述すればいいのでしょうか?
2019/12/25(水) 01:34:54.95ID:vipj7N9s
echo class Program{static void Main(){System.Windows.Forms.SendKeys.SendWait("{F11}");}}>temp.cs
FOR /F %%i IN ('dir /b /s %WINDIR%\Microsoft.NET\Framework\csc.exe') DO set cscexe=%%i
%cscexe% temp.cs
temp.exe
2019/12/25(水) 11:28:21.34ID:E0w5VXt3
>>656
ワラタ
2019/12/25(水) 12:39:52.06ID:32sm7KoS
>>656
すごいな、プロ?
2019/12/26(木) 00:38:52.07ID:ocAthgHy
ウイルスに使えそうw
2019/12/26(木) 18:09:54.44ID:gPRn8RL/
職業 プロバッチファイルスクリプター(自称)
2019/12/27(金) 00:09:22.71ID:CW1qzWXe
%1がフォルダ名の場合、サイズを示す%~z1は0以外の数字になる
何を表しているのか不明
2019/12/27(金) 07:50:28.51ID:sZ8rOkNi
エントリーレコードのsizeじゃね?テキトーmaybe
2019/12/28(土) 12:01:21.14ID:c8Bqzbdx
>>662
そんな数字が多いですね
\windows\winsxs や * だと違う表示も出るので意味不明、バグなのか
2020/01/02(木) 17:54:09.99ID:LCDlLvJS
for の %~tI のみたいに簡単にディレクトリの作成日時を取得する方法教えてください
dir /tc 何か | findstr findstr /e /c:"<DIR> ."
みたいにして取り出して整形するのは何か間違えている気がしてならないので
2020/01/02(木) 20:56:32.19ID:gZNl6+48
%~t1 とかで出てくるのは更新日時じゃなかった?
作成日時ならそれでいんじゃね?
for /f "skip=3 tokens=1-3,5,6 delims=/: " %a in ('dir /tc %windir%') do (
echo %a%b%c%d%e
goto :LOOPOUT
)
:LOOPOUT
pause

日時はシステム依存で表示形式変わるので整形したい形に適宜tokensやdelims、echoのとこ弄るといい
何に利用するのか知らないけど powershell なら秒まで取得出来るしバッチより痒いところに手が届く
2020/01/02(木) 20:59:21.16ID:gZNl6+48
修正
%a→%%a
echo %%a%%b%%c%%d%%e
2020/01/03(金) 08:18:43.19ID:6GenP8Ub
ありがとうございます
何か一発でディレクトリ作成日時を取り出すなら PowerShell 使おう、
って話になるんですね、ミリ秒単位までいけるみたいですし
2020/01/03(金) 09:56:56.50ID:+cYn5CAB
forfiles でフォルダの更新日時も得られる、ただしファイルが多いと遅い
forfiles /M ファイル名 /C "cmd /c echo @fname @fdate @ftime"

dirだと得られない秒もOK、仕様がばらばら、バッチは不思議
2020/01/03(金) 13:02:11.21ID:fh28MJ7p
気まぐれに試してみたらskip=2と3の結果が同じでskip=4だった
ifでちゃんと絞った方が良さげ
for /f "tokens=1,3,4* delims= " %a in ('dir /ad /tc %windir%') do @if "%d"=="." @echo %a %b
2020/01/04(土) 01:23:14.19ID:/SGph6WX
dir ?
親DIRがピリオド2文字なのに
なぜ表示されるのか
2020/01/04(土) 07:59:26.77ID:T5YxFwCT
. と .. はディレクトリ作成時に同時に作成されルート以外の全ディレクトリに存在する特殊な .link のようなモノ
だから .. の(作成|更新)日時は自ディレクトリと同じ
.. は親ディレクトリを指し示すが親ディレクトリとは別のモノ
なぜと問われても、そういう仕様だから、としか
2020/01/04(土) 09:10:30.39ID:/SGph6WX
>>671
ピリオドは区切り文字であり、
ワイルドカードの?の文字数のカウントに含まれず。
ピリオドが先頭だと、最初のトークンは空文字列となり、
?は一文字以下の文字列を表すので、それに合致するわけかな。
ちなみに >>670 はそれより前のレスとは無関係
2020/01/05(日) 07:41:36.68ID:QOfK3b7c
>>670
dir /b ? だと表示しない謎
2020/01/06(月) 09:00:53.84ID:VNkic2h1
ディレクトリと同じ扱いだから
2020/01/06(月) 09:51:26.33ID:8LUwvv7f
先頭にドットがあると要注意だよな
ワイルドカードがドットを無視する場合があるから

>copy nul .txt
>copy nul txt
>dir/b
.txt
txt
>del txt*
>dir
ファイルが見つかりません
2020/01/08(水) 10:00:17.73ID:cX66OF4O
簡単な処理だからbatでいいかと思って書き始めたら思ったより複雑になって、なんでbatで書いちゃったんだろってなるのいい加減やめたい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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