[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/13 02:16 / Filesize : 294 KB / Number-of Response : 1050
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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/

730 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 12:30:00.59 ID:DitzTCfU.net]
何かをトリガーにしてタスクから叩くって事じゃないかな

731 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:11:28 ID:DSTYXSth.net]
特定のキー操作で解除するタイプのスクリーンセーバーなのかな?
でもそれならそれでkillするんじゃなくて該当のキーを送ればよいだけな気がするけど

732 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 17:51:57.47 ID:hksaF/sY.net]
Windows7標準のmklink

733 名前:でシンボリックリンクを作ると
リンクのタイムスタンプ(作成、更新、アクセスいずれも)は
リンク先ファイルのタイムスタンプに関係なくリンク作成時点のものになり
普通のファイルのようにはタイムスタンプを変更できないようだけど
変更する方法ある?

ハードリンクなら同じものを見ることになるから勝手に揃うけど
使い分けの方針が定まらなくてあまり使ってない
[]
[ここ壊れてます]

734 名前:デフォルトの名無しさん mailto:sage [2020/02/11(火) 23:47:43 ID:9k84sg+E.net]
>>703
シンボリックリンクの実体はファイルだからSetFileTimeで変更できるらしいぞ
らしいってのは俺がシンボリックリンクつかったことないからね

735 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 23:11:39 ID:2Mmdz3hG.net]
Windows Vistaは2017年にサポートが終了しましたがWindows Server 2008向けのセキュリティ更新プログラムを手動でインストールすることができていました。
ところがどの順番でどれをインスコすればいいのか面倒、、、それを解決するバッチプログラムを作った方がいます。
バッチファイルの記述がフムフム、へぇ〜という感じで自分にはとても勉強になりました。興味ある方はどぞ

創造の柱
blog.livedoor.jp/pillars_of_creation/archives/1831755.html

736 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 10:56:05.36 .net]
このスレで聞くべきなのか分かりませんが、Windowsで数千個のPDFを一括処理したいので、取りあえずここで聞いてみます。

PDFをAcrobatで開いた時のプロパティ(「文書のプロパティ」で、"表示"、"ページレイアウト"、"倍率"を設定できますが、
1つ1つ手作業で設定するのはさすがに無理です。
Javaの様なプログラミング言語でも、他のアプリでも何でもいいんですが、この文書のプロパティを一括で設定する方法って何がありますか?

737 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 18:54:16 ID:k6OnWQi4.net]
それってAcrobatのデフォルトの表示方法を変えればいいんじゃない?

738 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 19:52:05 ID:LC2xv/4E.net]
変更前後のAcrobatのレジストリをエクスポートしてdiff比較してどこが変わってるか確認するのが最初にやることだろうね



739 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 20:27:13.25 .net]
>>707
Acrobat側の表示方法を変えるのじゃ無く、PDF側で変えたい

740 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 20:53:17.46 ID:k6OnWQi4.net]
そもそもPDF側に表示方法が保存されてるものなの?
結局Acrobat側の問題じゃない?

741 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 22:35:05.89 ID:tH0Sn0AY.net]
「pdf コマンドライン ページレイアウト」でググったら
cpdf (Coherent PDF Command Line Tools) を紹介するサイトが出てきた
これ、見開きを縦スクロールにしたり単ページにしたりできて面白い
"倍率" が 2017/10 の時点で無理らしいけど

742 名前:デフォルトの名無しさん mailto:sage [2020/03/26(木) 01:20:56.78 ID:3WOBAGMl.net]
ID消して質問してるのがすげー腹立つな
本当に解決を望んでるなら逆にコテ付けるぐらいできんのか

743 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 02:44:24 ID:X7klH3J+.net]
windowsってことだけどpdfいじるならMac OSのautomatorじゃね?知らんけど

744 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 11:05:03 ID:6HUykZ9A.net]
今でもたまに使うけどUTF8系のスクリプトとの相性がめっちゃ悪いな
いちいちコードページ指定するとなんかウィンドウが切り替わって重いし

cmdをchcp 65001 (UTF8)で常用するって現実的じゃないよね?

745 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 14:03:40.50 ID:a+OnqKl3.net]
MSはレガシーのために保守してるだけだろ
powershell使え

746 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 16:57:49 ID:Vod ]
[ここ壊れてます]

747 名前:BEB+r.net mailto: 例えば、こんなバッチをutf-8で作成して実行する。
できたtest.txtを見たら1行しかない。なんでだ。
@echo off
chcp 65001
call :test > test.txt
exit
:test
echo テスト
echo テスト
[]
[ここ壊れてます]

748 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 17:12:48 ID:fYZW+FI9.net]
このスレで、utf-8 のバッチファイルにするなら、
行末は半角英数な文字にしとけ
というのを学んだ、>>262 からの流れ

なんでなのかはいまだに知らない



749 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 17:22:50 ID:D5FH+wQt.net]
2つめのechoがエラーになってるね

echo テスト

echo テスト
と間に空白行を挟めば正常だがどういう理屈なのか分からん

750 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 17:31:32 ID:VodBEB+r.net]
れすサンクス

751 名前:デフォルトの名無しさん [2020/04/21(火) 19:56:52 ID:vK3trFFL.net]
%2つというのは、何らかのエスケープですか?
また、forを使うときにfor %iなどとしますが、%の意味がよくわかりません

752 名前:デフォルトの名無しさん [2020/04/21(火) 21:11:11 ID:vK3trFFL.net]
フォルダ内のファイルを連番つけてリネームする方法はわからないでしょうか
forを使用してインデックスを連番として付与する感じだと思うんですが

ファイルはこんな感じです
犬.txt
猫.txt
猿.txt

753 名前:デフォルトの名無しさん [2020/04/21(火) 21:17:03.32 ID:FdhLTsrP.net]
>>720
%は互換性や拡張などのおかげで大変ややこしい事になっている
説明するには小一時間かかるのでここでは控える事にする

754 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 21:26:09.14 ID:M3jMZi3+.net]
>>720
%は変数を定義する時に使うよ %iで「iという変数」になるよ
バッチプログラムで使う時は%%iにする必要があるよ
https://www.pg-fl.jp/program/dos/doscmd/for.htm
「%」のページも読んだ方が良いよ

755 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 22:46:58.98 ID:HADG6GDb.net]
>>721
Ruby で作った。
ただし、DryRun なので実際には実行されません。
001.txt, 002.txt に変わります

require 'fileutils'

# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/test/*"
target_dir = File.dirname( dir_path ) # ディレクトリパスだけを取り出す

Dir.glob( dir_path )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each.with_index( 1 ) do |full_path, idx| # index は、1 から始まる

# format で、0埋め3桁表示にする。extname は拡張子
# ファイル名は、001.txt, 002.txt など
dest_path = target_dir + "/" + ( "%03d" % idx ) + File.extname( full_path )

FileUtils::DryRun.move( full_path, dest_path )
end

756 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 22:54:20 ID:h/bjIQIw.net]
rubyはスレ違い

757 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:04:39.20 ID:s3lLVMWt.net]
3桁連番付けただけ
@echo off & set n=1001
for %%i in (*.txt) do set a=%%i& call :x
goto :eof
:x
ren "%a%" "%n:~1%-%a%" & set /a n+=1

758 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:14:39.66 ID:J0u+GdjC.net]
リネームは結構難しい
リネーム後のファイルが再びリネーム対象となる場合がある



759 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:27:06 ID:alPdontK.net]
set N=1000
:LOOP
if "%~1"=="" exit /b
set /a N+=1
ren "%~1" "%N:~-3% %~nx1"
shift
goto :LOOP

760 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:28:37 ID:s3lLVMWt.net]
リネーム後のファイル名が既存だったりするし

761 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 23:49:32 ID:GY5lnYbX.net]
リネームは一覧を一旦ファイルに出力してから回した方が安全だよ
それとファイル名にUNICODE文字が混ざってる場合も考慮するとバッチファイルではやらん方がいいよ


762 名前:vbsかjsかpowershell []
[ここ壊れてます]

763 名前:724 mailto:sage [2020/04/21(火) 23:57:26 ID:HADG6GDb.net]
>>724
のRuby では最初に、Dir.glob( "C:/Users/Owner/test/*" )
で、そのフォルダ内のすべてのファイルを取得しているから、

各ファイルを、rename していく途中で、
rename後のファイルを、再びrenameすることはない

764 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 00:04:16 ID:vEO7RF6u.net]
>>730
ファイル出力というかfor/fでdir出力の取り込みでいいんじゃね?
UNICODE文字は関係あるかね?

765 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 06:52:59.32 ID:gobEj/px.net]
>>721
@echo off & set "n=1001" & set t=tmp_dir
md %t% & for %%i in (*.txt) do set a=%%i& call :x
move %t%\* . > nul & rd %t% & goto :eof
:x
move "%a%" "%t%\%n:~1%-%a%" > nul & set /a n+=1

tmp_dirの名前は何でもいいが既存の名前を避けてください。

766 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 09:12:13 ID:UZ0N9G3p.net]
>>732
>UNICODE文字は関係あるかね?
SJISに含まれてない文字が入ってると酷いことになる

767 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 10:16:03 ID:MJO3kN2U.net]
駄目文字のせいでSJISコードがバグると言うならまだわかるが
その逆って意味がわからないな
MSは全くテストしてないってことか

768 名前:デフォルトの名無しさん [2020/04/22(水) 11:07:12 ID:/W5c3Vma.net]
>>722-735
どうも
勉強中です



769 名前:デフォルトの名無しさん [2020/04/22(水) 11:53:22 ID:/W5c3Vma.net]
複数行を一行にまとめる場合は、&でつなぐんでしょうか?
これが改行と同じ意味でしょうかね。

770 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 12:07:17 ID:vEO7RF6u.net]
>>736
@echo off & set n=1001& chcp 65001 > nul
for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x
goto :eof
:x
ren "%a%" "%n:~1%-%a%" & set /a n+=1

>>734 コードページ変えればいいだけ

771 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 19:08:42.79 ID:nR8TNEgs.net]
>>737
複数行をまとめるって、、
文字列の足し算の話?
コマンドを複数行に分割して記述する話?
(継続文字のこと?)

772 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 19:11:46 ID:nR8TNEgs.net]
>>739
または複数コマンドを一行で記述する話?

773 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 20:05:53.95 ID:j1ZYXyL3.net]
>>735
コマンドプロンプトは自体はUNICODE対応
各種コマンドもUNICODE対応

だけどバッチファイルは過去の互換性が必要なので
デフォルトではOSの設定(日本語だとSJIS)の文字コードとして使われる。
その設定はchcpで変えることが出来る

単にコマンド呼び出しをしてるだけならUNICODEとして扱われるが
forでバッチファイルの世界に招き入れたら、
chcpの設定によって文字コードの変換が行われる

テストはしてるだろ。この文字コード変換は仕様なので
バッチファイルでUNICODE文字を扱いたければchcpで
UTF-8に変更しなければならないというだけのこと

774 名前:デフォルトの名無しさん [2020/04/23(木) 06:47:17 ID:153+oMoq.net]
>>739
バッチファイルではなくて、複数行をコマンドプロンプト上で実行したい場合があったりします

775 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 08:24:04.38 ID:5iduMLE+.net]
>>742
複数行をコピペじゃ駄目なの?
例えば、この内容をメモ帳に記述しておいて

rem ―- ここから ――
dism /online /cleanup-image /restorehealth
sfc /scannow
rem ―- ここまで ―-

4行をコピペする

776 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 09:07:36 ID:Z6s7Y3Lu.net]
>>742
複数コマンドを1行で実行したいということなら、、、
A & B ... A実行後にBを実行
A | B ... Aの実行結果をBに渡して実行
A && B ... Aが成功したらBを実行
A || B ... Aが失敗したらBを実行

長いコマンドを複数行に分割したいなら、、、
Sentence1 ^<改行>
Sentence2
(サーカムフレックスで継続)

777 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 12:04:05.59 ID:qTwHi2aC.net]
()で囲めばいい。

(timeout /t 300
cd d f:\hoge
for %f in ( *.jpg ) do (
 ・・・
)
)

正式名称が何かは知らないが勝手にブ

778 名前:ロックと呼んでる。 []
[ここ壊れてます]



779 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 14:59:02.07 ID:WFX6w8Jo.net]
>>744
そういうのがあるのか、| 以外知らなかった

780 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 14:59:42.71 ID:WFX6w8Jo.net]
>>745
これも知らなかった

781 名前:デフォルトの名無しさん [2020/04/23(木) 15:25:29.03 ID:153+oMoq.net]
>>743コピペでももちろんいいですが、知っておきたかったです

782 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 16:03:20.39 ID:eZrYYRVL.net]
なんでバッチ嫌なの?

783 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 17:31:56.25 ID:P2MaiEJS.net]
>>748
だったらこんなところで聞くんじゃなくて
一次資料に当たる努力をしなよ

784 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 21:20:47 ID:M8I+Acr1.net]
>>745
それ駄目。
遅延変数展開しないと痛い目に遭うよ。

785 名前:デフォルトの名無しさん [2020/04/26(日) 18:05:24 ID:FVxXRtXH.net]
連番をつけるコードでまだ躓いています
hoge.txt
hogehoge.txt

hoge(1).txt
hogehoge(2).txt
としたいです
echo off & for %i in (*.txt) do (ren %i ???)
このはてな部分に連番を指定するためにインデックスを指定しないといけないと思うんですが、%i自体にはファイル名が入っていると思います。インデックスは取れるんでしょうか?

786 名前:デフォルトの名無しさん [2020/04/26(日) 18:36:58 ID:FVxXRtXH.net]
バッチでset /aなどのオプションがありますが、/aは計算を伴う場合に使うそうです。
この/aに意味はあるのですか?
何らかの単語の略だと覚えやすいんですが。

787 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 18:40:50 ID:Pfsg7A5O.net]
その程度ぐぐれば出てくるでしょ
インデックスのカウント用変数が必要+変数の遅延展開
丸括弧のエスケープが必要
aはarithmeticの略

788 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 20:15:42 ID:cczyU4e/.net]
@echo off & set n=1& chcp 65001 > nul
for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x "%%a%%"
goto :eof
:x
ren %1 "%~n1(%n%)%~x1" & set /a n+=1



789 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 22:00:20.95 ID:zKIVBOto.net]
1Point ノウハウ
dir ですべてのファイル、フォルダを表示したい場合は
dir /A

790 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 22:18:32 ID:DxwpR+0O.net]
普通に do call :x "%%~i" でいいと思うんだが何故いちいち set a=%%i とかしてるの?
何か理由あるん?

791 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 22:22:15 ID:YV1WqKFq.net]
>>757
ファイル名に「%」入ってるとマズくない?

792 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 05:49:29 ID:ceHl0duT.net]
シェルスクリプトってお手軽省略表記にこだわりすぎるあまり
エスケープ処理が複雑化しバグりやすくなって本末転倒だよな

793 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 05:57:02 ID:l2PF55i3.net]
そんなところで躓く能なしは、他の言語で書いても同じだよ

794 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 13:01:40 ID:DKHJb1hS.net]
他の言語でもエスケープは必要なことはあるし同じこと
ただbatのように自身を置換して逐次実行するするようなことは
eval系の命令を使う場合なのでほぼ無いに等しいので意識されないだけ

795 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 16:44:00 ID:3RXW9/E3.net]
要するに分かりにくい
ここで初心者にイロハから質問されてもレスがしにくい
リネームソフトでも使え

796 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 17:37:46 ID:7TaGv6sC.net]
>>759
シェルスクリプトでエスケープ処理が複雑なんて
したことがないんだがどういうケース?

むしろバッチファイルのほうがややこしすぎる
バッチファイルでダブルクォートはいつつけるか言える?
スペースが含まれたファイル名とか

バッチファイルでこれの出力結果は
echo "C:\Program Files"

↓これです。(ダブルクォート含む)
"C:\Program Files"

797 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:05:03 ID:3RXW9/E3.net]
どういうケースって、すぐ上の奴だろ

798 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:18:07 ID:7TaGv6sC.net]
>>764
もしかしてバッチファイルとシェルスクリプトの違いわかってないの?



799 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:19:14 ID:7TaGv6sC.net]
シェルスクリプトっていうのはUnixやLinuxの
/bin/shとかbashのことなんだが

800 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 18:20:52 ID:RB8xSOb3.net]
ファイル数

801 名前:からんけどリネームソフト使えば一分かからんで終了 []
[ここ壊れてます]

802 名前:デフォルトの名無しさん [2020/04/28(火) 20:35:28 ID:C/yTg51l.net]
>>766
俺の定義ではバッチファイルはシェルスクリプトだ

config.sysに
shell=command.com /e:1024
とか書いてたからな

803 名前:デフォルトの名無しさん [2020/04/28(火) 20:39:22 ID:C/yTg51l.net]
ちなみにMS-DOSにはエスケープ文字なんて無い

804 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 20:40:45 ID:f4hk4dsD.net]
>>768
意味わかんないから調べたが、
今では全く通用しない話じゃねーかよ。

てめーの定義を押し付けんな。

805 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 20:51:25.37 ID:l2PF55i3.net]
>>770
頑張ってググってきたんだからほめてやれよ

806 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 22:38:03.31 ID:0mXw36Cx.net]
>>769
Delims句でイコールを区切り文字にしたいときはサーカムフレックスでエスケープする必要があるときがあるけどね。

807 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 23:55:09.09 ID:3RXW9/E3.net]
cmdはシェルだ。定義も糞もない

808 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 00:05:03 ID:kLiglYQz.net]
>>768
cmdじゃないじゃん



809 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 06:34:57 ID:bLWOmnfL.net]
UNIXとかでshやbashがログインシェルとかインタラクティブシェルになるのと同じだよ
shやbash=cmd
シェルスクリプト=バッチファイル
シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前

810 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 06:56:52.10 ID:SXZJio07.net]
とはいえ逆にunixでバッチがどうとか言うと違和感あるしな
>>766みたいな感覚が一般的

811 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:15:11 ID:sus1L+2H.net]
>>775
> シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前

シェアならLinuxのシェルスクリプトの方が多いよ
今はsystemdに置き換えられつつあるが、起動処理の多くで
シェルスクリプトが使われていた。
各アプリのビルドなどでもシェルスクリプトは使われている。

それに対してバッチファイルは殆ど使われていない。
そもそもWindowsのコマンドは、他のコマンドの出力を読み取って
別のコマンドで処理するように設計されていない
単に呼び出すだけ。だからバッチファイルという名前になってる

例えばcopyコマンドであってもシェルスクリプトであれば、コピーが正常に終了した場合
なにも表示されないのでスクリプトとして使いやすいが
Windowsのcopyは人間用のメッセージがいちいち出る
コマンドの出力を変数に入れるだけでも大変
遅延環境変数の展開を使わなければ変数の中にメタ文字的なものが入るだけで簡単に壊れる

そもそもの設計思想がスクリプトを組むためではなく、単にコマンドを並べるという使い方を
するためだからバッチファイルはシェルスクリプトだけでなく
PowerShellスクリプトやVBScriptよりも使いづらくなってしまっている

一方、PowerShellスクリプトやVBScriptはコマンドをよびだすのが
面倒になってるので両立してるシェルスクリプトにはかなわない

812 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:22:12 ID:VzuV0Enx.net]
アスペがうだうだ言ってるだけで全く「会話」が進行していないな

813 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:36:25.95 ID:SXZJio07.net]
スレチだから、もうやめろ

814 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 07:51:09.96 ID:sus1L+2H.net]
やなコッタ

815 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 22:15:38.24 ID:f6LPbIhG.net]
パンナコッタ

816 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 22:43:10 ID:sus1L+2H.net]
メロンパンナ

817 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 00:25:02 ID:6g7fIyNp.net]
マンコッタ茶園のアッサムティーをすすりながら仕事するのが何よりの贅沢

818 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 23:56:54 ID:4NDFLh29.net]
アッサムティー好き、いいよね



819 名前:デフォルトの名無しさん mailto:sage [2020/05/01(金) 20:45:42 ID:I+dUmCMk.net]
カタコッタ

820 名前:デフォルトの名無しさん [2020/05/07(木) 18:46:37 ID:jiFNKMfo.net]
滅茶苦茶初歩的な質問ですまん

バッチファイルからPythonスクリプト実行してPythonスクリプト側でprintした文字列をバッチファイル側で取得する方法ってある?

821 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 18:51:16 ID:cw3NlGJG.net]
FOR /F ["オプション"] %変数 IN

822 名前:('コマンド') DO コマンド [コマンド パラメーター]
または usebackq オプションの場合:
FOR /F ["オプション"] %変数 IN (`コマンド`) DO コマンド [コマンド パラメーター]
[]
[ここ壊れてます]

823 名前:デフォルトの名無しさん [2020/05/07(木) 18:51:30 ID:jiFNKMfo.net]
もしくはコマンドプロンプトに出力された文字列を出所問わず取得したい

824 名前:デフォルトの名無しさん [2020/05/07(木) 19:01:03 ID:jiFNKMfo.net]
>>787 ありがとう、いけたわ

logzero使ってるライブラリでこれやろうとすると途中で処理が止まるけど、これは他の問題かもしれんな

825 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 19:33:24 ID:lct9jPsZ.net]
昔だったら tail -f

826 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 19:34:28 ID:2gF3mugX.net]
>>789
標準出力じゃなくて、標準エラー出力の方にprintしてるんだろ
('py foo.py 2^>^&1')

827 名前:デフォルトの名無しさん [2020/05/07(木) 19:47:29.96 ID:jiFNKMfo.net]
logzeroさらっと調べても設定全く分からんので今回は該当部分の出力だけlogzero.infoからprintにして無駄な出力を省いた
出力取得できたのでまあよし

828 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 20:17:47 ID:2gF3mugX.net]
>>792
@echo off
setlocal enabledelayedexpansion
set n=0
for /f "tokens=*" %%i in ('py test.py 2^>^&1') do (
set IN!n!=%%i
set /a n+=1
)
set /a n-=1
for /l %%i in (0,1,%n%) do (
echo.!IN%%i!
)
endlocal



829 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 09:27:08.95 ID:hWMQZbFi.net]
>コマンドプロンプト入門 Kindle版

2020年にこれを出すとはチャレンジャーすぎるな

830 名前:デフォルトの名無しさん mailto:sage [2020/05/12(火) 16:03:14 ID:PeLhefIP.net]
amazonで、確認すると、2019/09の出版みたいですね。
どうせなら、power shellの本出したほうが良かったかも。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<294KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef